#include "binary-parser.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "limits.h"
#include <sys/stat.h>
#include "common.h"

#include <QtCore>
using namespace std;

// 字符匹配算法调用
//#define USE_STDFIND
#define USE_QT_CC

static QDateTime DtFlag1;

struct Properties {
    ushort category         : 8; /* 5 needed */
    ushort line_break_class : 8; /* 6 needed */
    ushort direction        : 8; /* 5 needed */
    ushort combiningClass   : 8;
    ushort joining          : 2;
    signed short digitValue : 6; /* 5 needed */
    ushort unicodeVersion   : 4;
    ushort lowerCaseSpecial : 1;
    ushort upperCaseSpecial : 1;
    ushort titleCaseSpecial : 1;
    ushort caseFoldSpecial  : 1; /* currently unused */
    signed short mirrorDiff    : 16;
    signed short lowerCaseDiff : 16;
    signed short upperCaseDiff : 16;
    signed short titleCaseDiff : 16;
    signed short caseFoldDiff  : 16;
    ushort graphemeBreak    : 8; /* 4 needed */
    ushort wordBreak        : 8; /* 4 needed */
    ushort sentenceBreak    : 8; /* 4 needed */
};

static const unsigned short uc_property_trie[] = {
    // 0 - 0x11000

    6256, 6288, 6320, 6352, 6384, 6416, 6448, 6480,
    6512, 6544, 6576, 6608, 6640, 6672, 6704, 6736,
    6768, 6800, 6832, 6864, 6896, 6928, 6960, 6992,
    7024, 7056, 7088, 7120, 7152, 7184, 7216, 7248,
    7280, 7312, 7344, 6512, 7376, 6512, 7408, 7440,
    7472, 7504, 7536, 7568, 7600, 7632, 7664, 7696,
    7728, 7760, 7792, 7824, 7856, 7888, 7920, 7952,
    7984, 8016, 8048, 8080, 8112, 8144, 8176, 8208,
    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
    8272, 8304, 8336, 8368, 8400, 8432, 8464, 8496,
    8528, 8560, 8592, 8624, 8656, 8688, 8720, 8752,
    8400, 8784, 8816, 8848, 8880, 8912, 8944, 8976,
    9008, 9040, 9072, 9104, 9136, 9168, 9200, 9232,
    9136, 9264, 9296, 9104, 9328, 9360, 9392, 9424,
    9456, 9488, 9520, 9552, 9584, 9616, 9648, 9552,
    9680, 9712, 9744, 9776, 9808, 9840, 9872, 9552,

    9904, 9936, 9968, 9552, 9552, 10000, 10032, 10064,
    10096, 10096, 10128, 10160, 10160, 10192, 10224, 10256,
    10288, 10320, 10352, 10320, 10384, 10416, 10448, 10480,
    10512, 10320, 10544, 10576, 10608, 10320, 10320, 10640,
    10672, 10320, 10320, 10320, 10320, 10320, 10320, 10320,
    10320, 10320, 10320, 10320, 10320, 10320, 10320, 10320,
    10320, 10320, 10320, 10704, 10736, 10320, 10320, 10768,
    10800, 10832, 10864, 10896, 9904, 10928, 10960, 10992,
    11024, 10320, 11056, 11088, 10320, 11120, 9552, 9552,
    11152, 11184, 11216, 11248, 11280, 11312, 11344, 11376,
    11408, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    11440, 11472, 11504, 11536, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    11568, 11600, 11632, 11664, 11696, 11728, 11760, 11792,
    6512, 6512, 6512, 6512, 11824, 6512, 6512, 11856,
    11888, 11920, 11952, 11984, 12016, 12048, 12080, 12112,

    12144, 12176, 12208, 12240, 12272, 12304, 12336, 12368,
    12400, 12432, 12464, 12496, 12528, 12560, 12592, 12624,
    12656, 12688, 12720, 12752, 12784, 12816, 12848, 12880,
    12912, 12944, 12976, 13008, 13040, 13072, 13104, 13136,
    13168, 13200, 13232, 13264, 13296, 13328, 13360, 13392,
    13168, 13168, 13168, 13168, 13424, 13456, 13488, 13520,
    13552, 13168, 13168, 13584, 13616, 13648, 9552, 9552,
    13680, 13712, 13744, 13776, 13808, 13840, 13872, 13904,
    13936, 13936, 13936, 13936, 13936, 13936, 13936, 13936,
    13968, 13968, 13968, 13968, 14000, 14032, 14064, 14096,
    13968, 14128, 13968, 14160, 14192, 14224, 14256, 14288,
    14320, 14352, 9552, 9552, 9552, 9552, 9552, 9552,
    14384, 14416, 14448, 14480, 14512, 14512, 14512, 14544,
    14576, 14608, 14640, 14672, 14704, 14736, 14736, 9552,
    14768, 9552, 9552, 9552, 14800, 14832, 14832, 14864,
    14832, 14832, 14832, 14832, 14832, 14832, 14896, 14928,

    14960, 14992, 15024, 15056, 15088, 15120, 15152, 15184,
    15216, 15248, 15280, 15280, 15312, 15344, 15376, 15408,
    15440, 15472, 15504, 15536, 15472, 15568, 15600, 15632,
    15664, 15664, 15664, 15696, 15664, 15664, 15728, 15760,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,

    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
    15792, 15792, 15792, 15792, 15792, 15824, 11376, 11376,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,

    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,

    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,

    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,

    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,

    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 15856, 15856, 15856, 15856, 15888, 9552, 9552,

    15920, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
    15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
    15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
    15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
    15952, 15952, 15952, 15952, 15984, 16016, 16048, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    16080, 16112, 9552, 9552, 9552, 9552, 9552, 9552,
    16144, 16176, 16208, 16240, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,

    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,

    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,

    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
    16304, 16336, 16368, 16400, 16432, 16496, 9552, 9552,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,

    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,

    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
    15856, 16592, 16624, 16656, 16688, 16688, 16720, 9552,
    16752, 16784, 16816, 16848, 16848, 16880, 16912, 16848,
    16848, 16848, 16848, 16848, 16848, 16848, 16848, 16848,
    16848, 16944, 16976, 16848, 17008, 16848, 17040, 17072,
    17104, 17136, 17168, 17200, 16848, 16848, 16848, 17232,
    17264, 17296, 17328, 17360, 17392, 17424, 17456, 17488,

    17520, 17552, 17584, 9552, 17616, 17616, 17616, 17648,
    17680, 17712, 17744, 17776, 17808, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    17840, 17872, 17904, 9552, 17936, 14640, 17968, 9552,
    18000, 18032, 18064, 17616, 18096, 18128, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
    18160, 18192, 8240, 8240, 8240, 8240, 8240, 8240,
    18224, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
    18256, 18288, 18320, 8240, 8240, 8240, 8240, 8240,
    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,

    // 0x11000 - 0x110000

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18608, 18608, 18608, 18864, 19120, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    19376, 19632, 19888, 20144, 20400, 20656, 20912, 21168,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,

    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
    21680, 21680, 21680, 21680, 21680, 21680, 21936, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    21680, 21680, 22192, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    22448, 22704, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,

    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,

    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 23216,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,

    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
    22960, 22960, 22960, 22960, 22960, 22960, 22960, 23216,


    0, 0, 0, 0, 0, 0, 0, 0,
    0, 1, 2, 3, 4, 5, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 6, 6, 6, 7,

    8, 9, 10, 11, 12, 13, 14, 15,
    16, 17, 14, 18, 19, 20, 21, 22,
    23, 24, 25, 26, 27, 28, 29, 30,
    31, 32, 33, 34, 35, 36, 37, 9,

    14, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 39, 40, 41, 42, 43,

    42, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 39, 45, 41, 36, 0,

    0, 0, 0, 0, 0, 46, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,

    47, 14, 48, 12, 12, 12, 49, 49,
    42, 49, 50, 51, 36, 52, 49, 42,
    53, 54, 55, 56, 57, 58, 49, 59,
    42, 60, 50, 61, 62, 62, 62, 14,

    38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 36,
    38, 38, 38, 38, 38, 38, 38, 63,

    44, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 36,
    44, 44, 44, 44, 44, 44, 44, 64,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    67, 68, 65, 66, 65, 66, 65, 66,
    50, 65, 66, 65, 66, 65, 66, 65,

    66, 65, 66, 65, 66, 65, 66, 65,
    66, 69, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    70, 65, 66, 65, 66, 65, 66, 71,

    72, 73, 65, 66, 65, 66, 74, 65,
    66, 75, 75, 65, 66, 50, 76, 77,
    78, 65, 66, 75, 79, 80, 81, 82,
    65, 66, 83, 50, 81, 84, 85, 86,

    65, 66, 65, 66, 65, 66, 87, 65,
    66, 87, 50, 50, 65, 66, 87, 65,
    66, 88, 88, 65, 66, 65, 66, 89,
    65, 66, 50, 90, 65, 66, 50, 91,

    90, 90, 90, 90, 92, 93, 94, 92,
    93, 94, 92, 93, 94, 65, 66, 65,
    66, 65, 66, 65, 66, 65, 66, 65,
    66, 65, 66, 65, 66, 95, 65, 66,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    96, 92, 93, 94, 65, 66, 97, 98,
    99, 100, 65, 66, 65, 66, 65, 66,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    99, 100, 99, 100, 99, 100, 99, 100,

    101, 102, 99, 100, 99, 100, 99, 100,
    99, 100, 99, 100, 99, 100, 99, 100,
    99, 100, 99, 100, 102, 102, 102, 103,
    103, 103, 104, 105, 106, 107, 108, 103,

    103, 105, 109, 110, 111, 112, 113, 109,
    113, 109, 113, 109, 113, 109, 113, 109,
    50, 50, 50, 114, 115, 50, 116, 116,
    50, 117, 50, 118, 50, 50, 50, 50,

    116, 50, 50, 119, 50, 50, 50, 50,
    120, 121, 50, 122, 50, 50, 50, 121,
    50, 50, 123, 50, 50, 124, 50, 50,
    50, 50, 50, 50, 50, 125, 50, 50,

    126, 50, 50, 126, 50, 50, 50, 50,
    126, 127, 128, 128, 129, 50, 50, 50,
    50, 50, 130, 50, 90, 50, 50, 50,
    50, 50, 50, 50, 50, 50, 50, 50,

    50, 50, 50, 50, 50, 50, 50, 50,
    50, 131, 131, 131, 131, 131, 102, 102,
    132, 132, 132, 132, 132, 132, 132, 132,
    132, 133, 133, 134, 134, 134, 134, 134,

    132, 132, 42, 42, 42, 42, 133, 133,
    135, 133, 133, 133, 135, 133, 133, 133,
    134, 134, 42, 42, 42, 42, 42, 42,
    42, 42, 42, 42, 42, 42, 42, 136,

    132, 132, 132, 132, 132, 42, 42, 42,
    42, 42, 136, 136, 136, 136, 137, 138,
    138, 138, 138, 138, 138, 138, 138, 138,
    138, 138, 138, 138, 138, 138, 138, 138,

    139, 139, 139, 139, 139, 139, 139, 139,
    139, 139, 139, 139, 139, 139, 139, 139,
    139, 139, 139, 139, 139, 140, 141, 141,
    141, 141, 140, 142, 141, 141, 141, 141,

    141, 143, 143, 141, 141, 141, 141, 143,
    143, 141, 141, 141, 141, 141, 141, 141,
    141, 141, 141, 141, 144, 144, 144, 144,
    144, 141, 141, 141, 141, 139, 139, 139,

    139, 139, 139, 139, 139, 145, 146, 147,
    147, 147, 146, 146, 146, 147, 147, 148,
    149, 149, 149, 150, 150, 150, 150, 149,
    151, 152, 152, 153, 154, 155, 155, 156,

    157, 157, 158, 159, 159, 159, 159, 159,
    159, 159, 159, 159, 159, 159, 159, 159,
    160, 160, 160, 160, 42, 42, 160, 160,
    160, 160, 132, 161, 161, 161, 34, 160,

    160, 160, 160, 160, 42, 42, 162, 14,
    163, 163, 163, 160, 164, 160, 165, 165,
    166, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38,

    38, 38, 160, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 167, 168, 168, 168,
    169, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 44,

    44, 44, 170, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 171, 172, 172, 160,
    173, 174, 175, 175, 175, 176, 177, 131,
    178, 179, 65, 100, 65, 100, 65, 100,

    65, 100, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    180, 181, 182, 50, 183, 184, 185, 186,
    187, 188, 186, 187, 103, 189, 189, 189,

    190, 191, 191, 191, 191, 191, 191, 191,
    191, 191, 191, 191, 191, 190, 191, 191,
    38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38,

    38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38,
    44, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 44,

    44, 44, 44, 44, 44, 44, 44, 44,
    44, 44, 44, 44, 44, 44, 44, 44,
    192, 193, 193, 193, 193, 193, 193, 193,
    193, 193, 193, 193, 193, 192, 193, 193,

    65, 66, 194, 139, 139, 139, 139, 160,
    195, 195, 178, 179, 99, 100, 99, 100,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,

    196, 65, 66, 65, 66, 178, 179, 65,
    66, 178, 179, 65, 66, 178, 179, 197,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 99, 100, 65, 66,
    65, 66, 65, 66, 65, 66, 105, 106,
    65, 66, 113, 109, 113, 109, 113, 109,

    178, 179, 178, 179, 178, 179, 178, 179,
    178, 179, 178, 179, 178, 179, 178, 179,
    113, 109, 113, 109, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 198, 198, 198, 198, 198, 198, 198,
    198, 198, 198, 198, 198, 198, 198, 198,

    198, 198, 198, 198, 198, 198, 198, 198,
    198, 198, 198, 198, 198, 198, 198, 198,
    198, 198, 198, 198, 198, 198, 198, 160,
    160, 134, 199, 199, 200, 199, 200, 199,

    160, 201, 201, 201, 201, 201, 201, 201,
    201, 201, 201, 201, 201, 201, 201, 201,
    201, 201, 201, 201, 201, 201, 201, 201,
    201, 201, 201, 201, 201, 201, 201, 201,

    201, 201, 201, 201, 201, 201, 201, 202,
    160, 203, 204, 160, 160, 160, 160, 160,
    205, 206, 207, 207, 207, 207, 206, 207,
    207, 207, 208, 206, 207, 207, 207, 207,

    207, 207, 152, 206, 206, 206, 206, 206,
    207, 207, 206, 207, 207, 208, 209, 207,
    210, 211, 212, 213, 214, 215, 216, 217,
    218, 219, 220, 221, 222, 223, 224, 225,

    226, 227, 228, 226, 207, 152, 229, 230,
    205, 205, 205, 205, 205, 205, 205, 205,
    231, 231, 231, 231, 231, 231, 231, 231,
    231, 231, 231, 231, 231, 231, 231, 231,

    231, 231, 231, 231, 231, 231, 231, 231,
    231, 231, 231, 205, 205, 205, 205, 205,
    231, 231, 231, 232, 233, 205, 205, 205,
    205, 205, 205, 205, 205, 205, 205, 205,

    234, 234, 234, 234, 235, 235, 235, 235,
    235, 235, 235, 236, 237, 238, 239, 239,
    149, 149, 149, 149, 149, 149, 235, 235,
    235, 235, 235, 240, 235, 235, 241, 242,

    235, 243, 244, 244, 244, 244, 245, 244,
    245, 244, 245, 245, 245, 245, 245, 244,
    244, 244, 244, 245, 245, 245, 245, 245,
    245, 245, 245, 235, 235, 235, 235, 235,

    246, 245, 245, 245, 245, 245, 245, 245,
    244, 245, 245, 247, 248, 249, 250, 251,
    252, 253, 254, 146, 146, 147, 150, 149,
    149, 153, 153, 153, 152, 153, 153, 235,

    255, 256, 257, 258, 259, 260, 261, 262,
    263, 264, 265, 266, 266, 267, 268, 268,
    269, 244, 244, 244, 243, 244, 244, 244,
    245, 245, 245, 245, 245, 245, 245, 245,

    245, 245, 245, 245, 245, 245, 245, 245,
    244, 244, 244, 244, 244, 244, 244, 244,
    244, 244, 244, 244, 244, 244, 244, 244,
    244, 244, 245, 245, 245, 245, 245, 245,

    245, 245, 245, 245, 245, 245, 245, 245,
    245, 245, 245, 245, 245, 245, 245, 245,
    245, 245, 245, 245, 245, 245, 245, 245,
    270, 270, 245, 245, 245, 245, 245, 270,

    244, 245, 245, 244, 244, 244, 244, 244,
    244, 244, 244, 244, 245, 244, 245, 271,
    245, 245, 244, 244, 242, 244, 139, 139,
    139, 139, 139, 139, 139, 272, 273, 139,

    139, 139, 139, 141, 139, 274, 274, 139,
    139, 49, 141, 139, 139, 141, 275, 275,
    23, 24, 25, 26, 27, 28, 29, 30,
    31, 32, 270, 270, 270, 276, 276, 277,

    278, 278, 278, 279, 279, 279, 279, 279,
    279, 279, 279, 279, 279, 279, 235, 280,
    271, 281, 270, 270, 270, 271, 271, 271,
    271, 271, 270, 270, 270, 270, 271, 270,

    270, 270, 270, 270, 270, 270, 270, 270,
    271, 270, 271, 270, 271, 277, 277, 275,
    146, 147, 146, 146, 147, 146, 146, 147,
    147, 147, 146, 147, 147, 146, 147, 146,

    146, 146, 147, 146, 147, 146, 147, 146,
    147, 146, 146, 235, 235, 275, 277, 277,
    282, 282, 282, 282, 282, 282, 282, 282,
    282, 283, 283, 283, 282, 282, 282, 282,

    282, 282, 282, 282, 282, 282, 282, 282,
    282, 282, 282, 283, 283, 282, 235, 235,
    235, 235, 235, 235, 235, 235, 235, 235,
    235, 235, 235, 235, 235, 235, 235, 235,

    284, 284, 284, 284, 284, 284, 284, 284,
    284, 284, 284, 284, 284, 284, 284, 284,
    284, 284, 284, 284, 284, 284, 284, 284,
    284, 284, 284, 284, 284, 284, 284, 284,

    284, 284, 284, 284, 284, 284, 285, 285,
    285, 285, 285, 285, 285, 285, 285, 285,
    285, 286, 235, 235, 235, 235, 235, 235,
    235, 235, 235, 235, 235, 235, 235, 235,

    287, 288, 289, 290, 291, 292, 293, 294,
    295, 296, 297, 297, 297, 297, 297, 297,
    297, 297, 297, 297, 297, 297, 297, 297,
    297, 297, 297, 297, 297, 297, 297, 297,

    297, 297, 297, 297, 297, 297, 297, 297,
    297, 297, 297, 298, 298, 298, 298, 298,
    298, 298, 299, 298, 300, 300, 301, 302,
    303, 304, 305, 205, 205, 205, 205, 205,

    205, 205, 205, 205, 205, 205, 205, 205,
    205, 205, 205, 205, 205, 205, 205, 205,
    205, 205, 205, 205, 205, 205, 205, 205,
    205, 205, 205, 205, 205, 205, 205, 205,

    160, 306, 306, 307, 308, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 160, 160, 309, 90, 307, 307,

    307, 306, 306, 306, 306, 306, 306, 306,
    306, 307, 307, 307, 307, 310, 160, 160,
    90, 139, 141, 139, 139, 160, 160, 160,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 306, 306, 311, 311, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    199, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 322, 322, 323, 322, 322,

    160, 306, 307, 307, 160, 90, 90, 90,
    90, 90, 90, 90, 90, 160, 160, 90,
    90, 160, 160, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 160, 160, 160, 90, 90,
    90, 90, 160, 160, 309, 308, 324, 307,

    307, 306, 306, 306, 306, 160, 160, 307,
    307, 160, 160, 307, 307, 310, 323, 160,
    160, 160, 160, 160, 160, 160, 160, 324,
    160, 160, 160, 160, 90, 90, 160, 90,

    90, 90, 306, 306, 160, 160, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    90, 90, 12, 12, 325, 325, 325, 325,
    325, 325, 194, 160, 160, 160, 160, 160,

    160, 326, 306, 327, 160, 90, 90, 90,
    90, 90, 90, 160, 160, 160, 160, 90,
    90, 160, 160, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 160, 90, 90, 160,
    90, 90, 160, 160, 309, 160, 307, 307,

    307, 306, 306, 160, 160, 160, 160, 306,
    306, 160, 160, 306, 306, 310, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 90, 90, 90, 90, 160, 90, 160,

    160, 160, 160, 160, 160, 160, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    306, 306, 90, 90, 90, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 306, 306, 307, 160, 90, 90, 90,
    90, 90, 90, 90, 308, 90, 160, 90,
    90, 90, 160, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 160, 90, 90, 90,
    90, 90, 160, 160, 309, 90, 307, 307,

    307, 306, 306, 306, 306, 306, 160, 306,
    306, 307, 160, 307, 307, 310, 160, 160,
    90, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    90, 308, 326, 326, 160, 160, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    160, 328, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 160, 308, 90, 90,
    90, 90, 160, 160, 309, 90, 324, 306,

    307, 306, 306, 306, 160, 160, 160, 307,
    307, 160, 160, 307, 307, 310, 160, 160,
    160, 160, 160, 160, 160, 160, 306, 324,
    160, 160, 160, 160, 90, 90, 160, 90,

    90, 90, 160, 160, 160, 160, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    194, 308, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 306, 90, 160, 90, 90, 90,
    90, 90, 90, 160, 160, 160, 90, 90,
    90, 160, 90, 90, 90, 90, 160, 160,
    160, 90, 90, 160, 90, 160, 90, 90,

    160, 160, 160, 90, 90, 160, 160, 160,
    90, 90, 90, 160, 160, 160, 90, 90,
    90, 90, 90, 90, 90, 90, 323, 90,
    90, 90, 160, 160, 160, 160, 324, 307,

    306, 307, 307, 160, 160, 160, 307, 307,
    307, 160, 307, 307, 307, 310, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 324,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 329, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    325, 325, 325, 239, 239, 239, 239, 239,
    239, 328, 239, 160, 160, 160, 160, 160,

    160, 307, 307, 307, 160, 90, 90, 90,
    90, 90, 90, 90, 90, 160, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 160, 90, 90, 90,
    90, 90, 160, 160, 160, 160, 306, 306,

    306, 307, 307, 307, 307, 160, 306, 306,
    306, 160, 306, 306, 306, 310, 160, 160,
    160, 160, 160, 160, 160, 330, 331, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    90, 90, 160, 160, 160, 160, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 307, 307, 160, 90, 90, 90,
    90, 90, 90, 90, 90, 160, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 160, 90, 90, 90,
    90, 90, 160, 160, 332, 308, 307, 333,

    307, 307, 324, 307, 307, 160, 333, 307,
    307, 160, 307, 307, 306, 310, 160, 160,
    160, 160, 160, 160, 160, 324, 324, 160,
    160, 160, 160, 160, 160, 160, 90, 160,

    90, 90, 334, 334, 160, 160, 312, 313,
    314, 315, 316, 317, 318, 319, 320, 321,
    160, 301, 301, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 160, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 160, 160, 160, 160, 324, 307,

    307, 306, 306, 306, 160, 160, 307, 307,
    307, 160, 307, 307, 307, 310, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 324,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 335, 335, 160, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 160,
    160, 160, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 160, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 160, 336, 160, 160,

    336, 336, 336, 336, 336, 336, 336, 160,
    160, 160, 337, 160, 160, 160, 160, 338,
    335, 335, 285, 285, 285, 160, 285, 160,
    335, 335, 335, 335, 335, 335, 335, 338,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 335, 335, 339, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 340, 340, 340, 340, 340, 340, 340,
    340, 340, 340, 340, 340, 340, 340, 340,
    340, 340, 340, 340, 340, 340, 340, 340,
    340, 340, 340, 340, 340, 340, 340, 340,

    340, 340, 340, 340, 340, 340, 340, 340,
    340, 340, 340, 340, 340, 340, 340, 340,
    340, 341, 340, 340, 341, 341, 341, 341,
    342, 342, 343, 160, 160, 160, 160, 12,

    340, 340, 340, 340, 340, 340, 344, 341,
    345, 345, 345, 345, 341, 341, 341, 199,
    312, 313, 314, 315, 316, 317, 318, 319,
    320, 321, 346, 346, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 340, 340, 160, 340, 160, 160, 340,
    340, 160, 340, 160, 160, 340, 160, 160,
    160, 160, 160, 160, 340, 340, 340, 340,
    160, 340, 340, 340, 340, 340, 340, 340,

    160, 340, 340, 340, 160, 340, 160, 340,
    160, 160, 340, 340, 160, 340, 340, 340,
    340, 341, 340, 340, 341, 341, 341, 341,
    347, 347, 160, 341, 341, 340, 160, 160,

    340, 340, 340, 340, 340, 160, 344, 160,
    348, 348, 348, 348, 341, 341, 160, 160,
    312, 313, 314, 315, 316, 317, 318, 319,
    320, 321, 160, 160, 340, 340, 160, 160,

    349, 350, 350, 350, 351, 352, 351, 351,
    353, 351, 351, 354, 353, 355, 355, 355,
    355, 355, 353, 356, 357, 356, 356, 356,
    206, 206, 356, 356, 356, 356, 356, 356,

    358, 359, 360, 361, 362, 363, 364, 365,
    366, 367, 368, 368, 368, 368, 368, 368,
    368, 368, 368, 368, 369, 206, 356, 206,
    356, 370, 371, 372, 371, 372, 373, 373,

    349, 349, 349, 349, 349, 349, 349, 349,
    160, 349, 349, 349, 349, 349, 349, 349,
    349, 349, 349, 349, 349, 349, 349, 349,
    349, 349, 349, 349, 349, 349, 349, 349,

    349, 349, 349, 349, 349, 349, 349, 349,
    349, 349, 336, 160, 160, 160, 160, 160,
    160, 374, 375, 376, 377, 376, 376, 376,
    376, 376, 375, 375, 375, 375, 376, 378,

    375, 376, 207, 207, 379, 354, 207, 207,
    349, 349, 349, 349, 160, 160, 160, 160,
    376, 376, 376, 376, 376, 376, 285, 376,
    160, 376, 376, 376, 376, 376, 376, 376,

    376, 376, 376, 376, 376, 376, 376, 376,
    376, 376, 376, 376, 376, 376, 285, 285,
    285, 376, 376, 376, 376, 376, 376, 376,
    285, 376, 285, 285, 285, 160, 380, 380,

    381, 381, 381, 381, 381, 381, 147, 381,
    381, 381, 381, 381, 381, 160, 160, 381,
    382, 382, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    383, 383, 383, 383, 383, 383, 383, 383,
    383, 383, 383, 383, 383, 383, 383, 383,
    383, 383, 383, 383, 383, 383, 383, 383,
    383, 383, 383, 383, 383, 383, 383, 383,

    383, 383, 160, 383, 383, 383, 383, 383,
    160, 383, 383, 160, 384, 385, 385, 385,
    385, 384, 385, 160, 160, 160, 385, 386,
    384, 387, 160, 160, 160, 160, 160, 160,

    388, 389, 390, 391, 392, 393, 394, 395,
    396, 397, 398, 398, 339, 339, 339, 339,
    383, 383, 383, 383, 383, 383, 384, 384,
    385, 385, 160, 160, 160, 160, 160, 160,

    399, 399, 399, 399, 399, 399, 399, 399,
    399, 399, 399, 399, 399, 399, 399, 399,
    399, 399, 399, 399, 399, 399, 399, 399,
    399, 399, 399, 399, 399, 399, 399, 399,

    399, 399, 399, 399, 399, 399, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 400,
    400, 323, 323, 199, 401, 160, 160, 160,

    402, 402, 402, 402, 402, 402, 402, 402,
    402, 402, 402, 402, 402, 402, 402, 402,
    402, 402, 402, 402, 402, 402, 402, 402,
    402, 402, 402, 402, 402, 402, 402, 402,

    402, 402, 402, 402, 402, 402, 402, 402,
    402, 402, 402, 402, 402, 402, 402, 402,
    402, 402, 402, 402, 402, 402, 402, 402,
    402, 402, 160, 160, 160, 160, 160, 402,

    403, 403, 403, 403, 403, 403, 403, 403,
    403, 403, 403, 403, 403, 403, 403, 403,
    403, 403, 403, 403, 403, 403, 403, 403,
    403, 403, 403, 403, 403, 403, 403, 403,

    403, 403, 403, 160, 160, 160, 160, 160,
    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,

    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,

    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 404, 404, 404, 404, 404, 404,
    404, 404, 160, 160, 160, 160, 160, 160,

    336, 336, 336, 336, 336, 336, 336, 323,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 323,
    336, 160, 336, 336, 336, 336, 160, 160,
    336, 336, 336, 336, 336, 336, 336, 160,
    336, 160, 336, 336, 336, 336, 160, 160,

    336, 336, 336, 336, 336, 336, 336, 323,
    336, 160, 336, 336, 336, 336, 160, 160,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 323,
    336, 160, 336, 336, 336, 336, 160, 160,
    336, 336, 336, 336, 336, 336, 336, 160,

    336, 160, 336, 336, 336, 336, 160, 160,
    336, 336, 336, 336, 336, 336, 336, 323,
    336, 336, 336, 336, 336, 336, 336, 160,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 323,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 323,
    336, 160, 336, 336, 336, 336, 160, 160,
    336, 336, 336, 336, 336, 336, 336, 323,

    336, 336, 336, 336, 336, 336, 336, 323,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 160, 160, 160, 160, 153,

    405, 406, 407, 339, 339, 339, 339, 407,
    407, 408, 409, 410, 411, 412, 413, 414,
    415, 416, 417, 417, 417, 417, 417, 417,
    417, 417, 417, 417, 417, 160, 160, 160,

    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 160, 160, 160, 160, 160, 160,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 339, 407, 336,
    336, 336, 336, 336, 336, 336, 336, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    419, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 420, 421, 160, 160, 160,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 406, 406, 406, 422, 422,
    422, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    400, 400, 400, 400, 400, 400, 400, 400,
    400, 400, 400, 400, 400, 160, 400, 400,
    400, 400, 423, 423, 424, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    400, 400, 400, 400, 400, 400, 400, 400,
    400, 400, 400, 400, 400, 400, 400, 400,
    400, 400, 423, 423, 424, 425, 425, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    400, 400, 400, 400, 400, 400, 400, 400,
    400, 400, 400, 400, 400, 400, 400, 400,
    400, 400, 423, 423, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    400, 400, 400, 400, 400, 400, 400, 400,
    400, 400, 400, 400, 400, 160, 400, 400,
    400, 160, 423, 423, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    383, 383, 383, 383, 383, 383, 383, 383,
    383, 383, 383, 383, 383, 383, 383, 383,
    383, 383, 383, 383, 426, 426, 384, 385,
    385, 385, 385, 385, 385, 385, 384, 384,

    384, 384, 384, 384, 384, 384, 385, 384,
    384, 385, 385, 385, 385, 385, 385, 385,
    385, 385, 387, 385, 406, 406, 427, 428,
    406, 339, 406, 429, 383, 430, 160, 160,

    388, 389, 390, 391, 392, 393, 394, 395,
    396, 397, 160, 160, 160, 160, 160, 160,
    431, 431, 431, 431, 431, 431, 431, 431,
    431, 431, 160, 160, 160, 160, 160, 160,

    432, 432, 433, 434, 433, 433, 435, 432,
    433, 434, 432, 285, 285, 285, 436, 160,
    388, 389, 390, 391, 392, 393, 394, 395,
    396, 397, 160, 160, 160, 160, 160, 160,

    336, 336, 336, 137, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    336, 336, 336, 336, 336, 336, 336, 336,
    160, 160, 160, 160, 160, 160, 160, 160,

    336, 336, 336, 336, 336, 336, 336, 336,
    336, 437, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 160, 160, 160,

    326, 326, 326, 327, 327, 327, 327, 326,
    326, 438, 438, 438, 160, 160, 160, 160,
    327, 327, 326, 327, 327, 327, 327, 327,
    327, 439, 149, 150, 160, 160, 160, 160,

    239, 160, 160, 160, 440, 440, 441, 442,
    443, 444, 445, 446, 447, 448, 449, 450,
    451, 451, 451, 451, 451, 451, 451, 451,
    451, 451, 451, 451, 451, 451, 451, 451,

    451, 451, 451, 451, 451, 451, 451, 451,
    451, 451, 451, 451, 451, 451, 160, 160,
    451, 451, 451, 451, 451, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    452, 452, 452, 452, 452, 452, 452, 452,
    452, 452, 452, 452, 452, 452, 452, 452,
    452, 452, 452, 452, 452, 452, 452, 452,
    452, 452, 452, 452, 452, 452, 452, 452,

    452, 452, 452, 452, 452, 452, 452, 452,
    452, 452, 160, 160, 160, 160, 160, 160,
    453, 453, 453, 453, 453, 453, 453, 453,
    453, 453, 453, 453, 453, 453, 453, 453,

    453, 452, 452, 452, 452, 452, 452, 452,
    453, 453, 160, 160, 160, 160, 160, 160,
    329, 454, 455, 456, 457, 458, 459, 460,
    461, 462, 160, 160, 160, 160, 463, 463,

    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,

    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 153,
    152, 464, 464, 464, 160, 160, 465, 466,

    334, 334, 334, 334, 467, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,

    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 468, 467, 334, 334,
    334, 334, 334, 467, 334, 467, 467, 467,

    467, 467, 334, 467, 469, 322, 322, 322,
    322, 322, 322, 322, 160, 160, 160, 160,
    470, 471, 472, 473, 474, 475, 476, 477,
    478, 479, 480, 480, 481, 481, 480, 480,

    481, 482, 482, 482, 482, 482, 482, 482,
    482, 482, 482, 298, 299, 298, 298, 298,
    298, 298, 298, 298, 482, 482, 482, 482,
    482, 482, 482, 482, 482, 160, 160, 160,

    102, 102, 102, 102, 102, 102, 102, 102,
    102, 102, 102, 102, 102, 102, 102, 102,
    102, 102, 102, 102, 102, 102, 102, 102,
    102, 102, 102, 102, 102, 102, 102, 102,

    102, 102, 102, 102, 102, 102, 102, 102,
    102, 102, 102, 102, 483, 483, 483, 483,
    483, 483, 483, 483, 483, 483, 483, 483,
    483, 483, 483, 483, 483, 483, 483, 483,

    483, 483, 483, 483, 483, 483, 483, 483,
    483, 483, 483, 483, 483, 483, 483, 483,
    483, 483, 483, 483, 483, 483, 483, 483,
    483, 483, 483, 483, 483, 483, 483, 483,

    483, 483, 102, 102, 102, 102, 102, 102,
    102, 102, 102, 102, 103, 103, 103, 103,
    103, 103, 103, 103, 103, 103, 103, 103,
    484, 103, 103, 103, 103, 485, 103, 103,

    103, 103, 103, 103, 103, 103, 103, 103,
    103, 103, 103, 103, 103, 103, 103, 103,
    103, 103, 103, 103, 103, 103, 103, 103,
    103, 103, 103, 484, 484, 484, 484, 484,

    484, 484, 484, 484, 484, 484, 484, 484,
    484, 484, 484, 484, 484, 484, 484, 484,
    484, 484, 484, 484, 484, 484, 484, 484,
    484, 484, 484, 484, 484, 484, 484, 484,

    153, 153, 152, 153, 298, 298, 298, 298,
    298, 298, 299, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 298, 299,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 486, 487,
    488, 489, 490, 491, 160, 160, 160, 160,

    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 65, 66, 65, 66, 65, 66,
    65, 66, 160, 160, 160, 160, 160, 160,

    492, 492, 492, 492, 492, 492, 492, 492,
    493, 493, 493, 493, 493, 493, 493, 493,
    492, 492, 492, 492, 492, 492, 160, 160,
    493, 493, 493, 493, 493, 493, 160, 160,

    492, 492, 492, 492, 492, 492, 492, 492,
    493, 493, 493, 493, 493, 493, 493, 493,
    492, 492, 492, 492, 492, 492, 492, 492,
    493, 493, 493, 493, 493, 493, 493, 493,

    492, 492, 492, 492, 492, 492, 160, 160,
    493, 493, 493, 493, 493, 493, 160, 160,
    494, 492, 495, 492, 496, 492, 497, 492,
    160, 493, 160, 493, 160, 493, 160, 493,

    492, 492, 492, 492, 492, 492, 492, 492,
    493, 493, 493, 493, 493, 493, 493, 493,
    498, 498, 499, 499, 499, 499, 500, 500,
    501, 501, 502, 502, 503, 503, 160, 160,

    504, 505, 506, 507, 508, 509, 510, 511,
    512, 513, 514, 515, 516, 517, 518, 519,
    520, 521, 522, 523, 524, 525, 526, 527,
    528, 529, 530, 531, 532, 533, 534, 535,

    536, 537, 538, 539, 540, 541, 542, 543,
    544, 545, 546, 547, 548, 549, 550, 551,
    492, 492, 552, 553, 554, 160, 555, 556,
    493, 493, 557, 557, 558, 42, 559, 42,

    42, 42, 560, 561, 562, 160, 563, 564,
    565, 565, 565, 565, 566, 42, 42, 42,
    492, 492, 567, 166, 160, 160, 568, 569,
    493, 493, 570, 570, 160, 42, 42, 42,

    492, 492, 571, 169, 572, 182, 573, 574,
    493, 493, 575, 575, 576, 42, 42, 42,
    160, 160, 577, 578, 579, 160, 580, 581,
    582, 582, 583, 583, 584, 42, 42, 160,

    585, 585, 585, 585, 585, 585, 585, 586,
    585, 585, 585, 587, 588, 589, 590, 591,
    592, 593, 592, 592, 594, 595, 14, 14,
    596, 597, 598, 599, 596, 600, 598, 599,

    14, 14, 14, 14, 601, 601, 601, 602,
    603, 604, 605, 606, 607, 608, 609, 610,
    13, 13, 13, 13, 13, 611, 611, 611,
    14, 596, 600, 14, 612, 612, 14, 43,

    43, 14, 14, 14, 613, 16, 17, 614,
    615, 615, 432, 432, 432, 432, 616, 616,
    616, 616, 185, 617, 618, 619, 620, 616,
    620, 620, 620, 620, 619, 620, 620, 621,

    622, 623, 623, 623, 160, 160, 160, 160,
    160, 160, 624, 624, 624, 624, 624, 624,
    625, 626, 160, 160, 627, 628, 629, 630,
    631, 632, 633, 633, 36, 16, 17, 50,

    625, 60, 55, 56, 627, 628, 629, 630,
    631, 632, 633, 633, 36, 16, 17, 160,
    484, 484, 484, 484, 484, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    12, 12, 12, 12, 12, 12, 12, 48,
    12, 12, 12, 634, 635, 429, 429, 429,
    636, 636, 637, 637, 637, 637, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    139, 139, 144, 144, 139, 139, 139, 139,
    144, 144, 144, 139, 139, 273, 273, 273,

    273, 139, 195, 195, 638, 639, 639, 159,
    640, 159, 639, 641, 299, 299, 299, 299,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    49, 49, 175, 642, 49, 49, 49, 175,
    49, 642, 50, 175, 175, 175, 50, 50,
    175, 175, 175, 50, 49, 175, 643, 49,
    49, 175, 175, 175, 175, 175, 49, 49,

    49, 49, 49, 49, 175, 49, 644, 49,
    175, 49, 645, 646, 175, 175, 647, 50,
    175, 175, 648, 175, 50, 90, 90, 90,
    90, 131, 649, 239, 103, 626, 650, 650,

    185, 185, 185, 185, 185, 650, 626, 626,
    626, 626, 651, 185, 418, 301, 652, 160,
    160, 160, 160, 62, 62, 62, 62, 62,
    62, 62, 62, 62, 62, 62, 62, 62,

    653, 653, 653, 653, 653, 653, 653, 653,
    653, 653, 653, 653, 653, 653, 653, 653,
    654, 654, 654, 654, 654, 654, 654, 654,
    654, 654, 654, 654, 654, 654, 654, 654,

    655, 655, 655, 99, 109, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    36, 36, 36, 36, 36, 49, 49, 49,
    49, 49, 36, 36, 49, 49, 49, 49,

    36, 49, 49, 36, 49, 49, 36, 49,
    49, 49, 49, 49, 49, 49, 36, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 36, 36,
    49, 49, 36, 49, 36, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 649, 649, 649, 649, 649,
    649, 649, 649, 649, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,

    36, 36, 36, 36, 36, 36, 36, 36,
    656, 656, 656, 657, 657, 657, 36, 36,
    36, 36, 18, 54, 36, 658, 36, 36,
    36, 36, 36, 36, 36, 36, 36, 36,

    36, 36, 36, 36, 36, 36, 36, 36,
    36, 36, 36, 36, 36, 36, 36, 36,
    36, 36, 36, 36, 36, 36, 36, 36,
    36, 36, 36, 36, 659, 660, 36, 36,

    36, 36, 36, 661, 36, 36, 36, 36,
    36, 36, 36, 36, 36, 36, 36, 36,
    36, 36, 659, 660, 659, 660, 36, 36,
    36, 36, 36, 36, 36, 36, 36, 36,

    36, 36, 36, 36, 659, 660, 659, 660,
    659, 660, 659, 660, 36, 36, 659, 660,
    659, 660, 659, 660, 659, 660, 659, 660,
    659, 660, 659, 660, 659, 660, 659, 660,

    659, 660, 659, 660, 659, 660, 659, 660,
    659, 660, 659, 660, 36, 36, 36, 659,
    660, 659, 660, 36, 36, 36, 36, 36,
    662, 36, 36, 36, 36, 36, 36, 36,

    36, 36, 659, 660, 36, 36, 663, 36,
    664, 665, 36, 665, 36, 36, 36, 36,
    659, 660, 659, 660, 659, 660, 659, 660,
    36, 36, 36, 36, 36, 36, 36, 36,

    36, 36, 36, 36, 36, 36, 36, 36,
    36, 659, 660, 659, 660, 666, 36, 36,
    659, 660, 36, 36, 36, 36, 659, 660,
    659, 660, 659, 660, 659, 660, 659, 660,

    659, 660, 659, 660, 659, 660, 659, 660,
    659, 660, 659, 660, 659, 660, 36, 36,
    659, 660, 667, 667, 667, 185, 668, 668,
    185, 185, 669, 669, 669, 670, 670, 185,

    49, 649, 49, 49, 49, 49, 49, 49,
    659, 660, 659, 660, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    36, 36, 49, 49, 49, 49, 49, 49,
    49, 16, 17, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,

    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,

    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 649, 185, 649, 649, 649,

    649, 649, 649, 649, 649, 649, 649, 649,
    649, 649, 649, 649, 649, 649, 649, 649,
    649, 649, 649, 649, 649, 381, 649, 649,
    649, 649, 649, 185, 185, 185, 185, 185,

    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 651, 651, 651, 651,
    651, 651, 651, 651, 651, 651, 651, 651,

    651, 651, 651, 651, 651, 651, 651, 651,
    651, 651, 651, 651, 651, 651, 651, 239,
    239, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 671, 671, 671, 671,

    671, 671, 301, 301, 301, 301, 301, 301,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 649, 649, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    672, 673, 674, 675, 676, 677, 678, 679,
    680, 62, 62, 62, 62, 62, 62, 62,
    62, 62, 62, 62, 672, 673, 674, 675,
    676, 677, 678, 679, 680, 62, 62, 62,

    62, 62, 62, 62, 62, 62, 62, 62,
    60, 55, 56, 627, 628, 629, 630, 631,
    632, 681, 681, 681, 681, 681, 681, 681,
    681, 681, 681, 681, 194, 194, 194, 194,

    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 194, 194,
    194, 194, 194, 194, 194, 194, 682, 682,
    682, 682, 682, 682, 682, 682, 682, 682,

    682, 682, 682, 682, 682, 682, 682, 682,
    682, 682, 682, 682, 682, 682, 682, 682,
    683, 683, 683, 683, 683, 683, 683, 683,
    683, 683, 683, 683, 683, 683, 683, 683,

    683, 683, 683, 683, 683, 683, 683, 683,
    683, 683, 684, 685, 685, 685, 685, 685,
    685, 685, 685, 685, 685, 686, 687, 688,
    689, 690, 691, 692, 693, 694, 685, 695,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 651, 651,
    651, 651, 651, 651, 651, 651, 651, 651,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 36,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 36, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    649, 649, 649, 649, 649, 649, 649, 649,
    185, 185, 185, 185, 185, 185, 185, 185,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 239, 239, 651, 651,
    418, 649, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 36,
    649, 649, 651, 651, 651, 651, 651, 651,
    651, 651, 651, 651, 651, 651, 418, 418,

    651, 651, 651, 651, 651, 651, 651, 651,
    651, 651, 239, 239, 239, 239, 239, 239,
    239, 239, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 160, 160, 160,

    239, 239, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 405, 418, 418, 418,
    418, 418, 301, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 49, 49, 49, 49, 160, 49, 49,
    49, 49, 160, 160, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    160, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 160, 49, 160, 49,
    49, 49, 49, 160, 160, 160, 49, 160,
    49, 49, 49, 696, 696, 696, 696, 160,

    160, 49, 697, 697, 49, 49, 49, 49,
    698, 699, 698, 699, 698, 699, 698, 699,
    698, 699, 698, 699, 698, 699, 672, 673,
    674, 675, 676, 677, 678, 679, 680, 62,

    672, 673, 674, 675, 676, 677, 678, 679,
    680, 62, 672, 673, 674, 675, 676, 677,
    678, 679, 680, 62, 49, 160, 160, 160,
    49, 49, 49, 49, 49, 49, 49, 49,

    49, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 49,
    160, 49, 49, 49, 49, 49, 49, 49,
    49, 49, 49, 49, 49, 49, 49, 160,

    700, 700, 700, 701, 702, 703, 704, 671,
    671, 671, 671, 160, 160, 160, 160, 160,
    185, 185, 185, 185, 185, 705, 706, 185,
    185, 185, 185, 185, 185, 705, 706, 185,

    185, 185, 705, 706, 705, 706, 698, 699,
    698, 699, 698, 699, 160, 160, 160, 160,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,

    381, 381, 381, 381, 381, 381, 381, 381,
    381, 381, 381, 381, 381, 381, 381, 381,
    381, 381, 381, 381, 381, 381, 381, 381,
    381, 381, 381, 381, 381, 381, 381, 381,

    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,

    185, 185, 185, 698, 699, 698, 699, 698,
    699, 698, 699, 698, 699, 707, 708, 709,
    710, 698, 699, 698, 699, 698, 699, 698,
    699, 185, 185, 185, 185, 185, 185, 185,

    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    711, 185, 185, 185, 185, 185, 185, 185,

    705, 706, 185, 185, 705, 706, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 705,
    706, 705, 706, 185, 705, 706, 185, 185,
    698, 699, 698, 699, 185, 185, 185, 185,

    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 712, 185, 185,
    705, 706, 185, 185, 698, 699, 185, 185,

    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 705, 706, 705, 706, 185,
    185, 185, 185, 185, 705, 706, 185, 185,
    185, 185, 185, 185, 705, 706, 185, 185,

    185, 185, 185, 185, 705, 706, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 185,
    185, 705, 706, 185, 185, 705, 706, 705,

    706, 705, 706, 705, 706, 185, 185, 185,
    185, 185, 185, 705, 706, 185, 185, 185,
    185, 705, 706, 705, 706, 705, 706, 705,
    706, 705, 706, 705, 706, 185, 185, 185,

    185, 705, 706, 185, 185, 185, 705, 706,
    705, 706, 705, 706, 705, 706, 185, 705,
    706, 185, 185, 705, 706, 185, 185, 185,
    185, 185, 185, 705, 706, 705, 706, 705,

    706, 705, 706, 705, 706, 705, 706, 185,
    185, 185, 185, 185, 185, 705, 706, 705,
    706, 705, 706, 705, 706, 705, 706, 185,
    185, 185, 185, 185, 185, 185, 713, 185,

    185, 185, 185, 714, 715, 714, 185, 185,
    185, 185, 185, 185, 705, 706, 185, 185,
    185, 185, 185, 185, 185, 185, 185, 705,
    706, 705, 706, 185, 185, 185, 185, 185,

    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 418, 418,
    418, 418, 418, 418, 301, 301, 301, 301,
    301, 301, 301, 160, 160, 160, 160, 160,

    301, 301, 301, 301, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    716, 716, 716, 716, 716, 716, 716, 716,
    716, 716, 716, 716, 716, 716, 716, 716,
    716, 716, 716, 716, 716, 716, 716, 716,
    716, 716, 716, 716, 716, 716, 716, 716,

    716, 716, 716, 716, 716, 716, 716, 716,
    716, 716, 716, 716, 716, 716, 716, 160,
    717, 717, 717, 717, 717, 717, 717, 717,
    717, 717, 717, 717, 717, 717, 717, 717,

    717, 717, 717, 717, 717, 717, 717, 717,
    717, 717, 717, 717, 717, 717, 717, 717,
    717, 717, 717, 717, 717, 717, 717, 717,
    717, 717, 717, 717, 717, 717, 717, 160,

    113, 109, 718, 719, 720, 721, 722, 113,
    109, 113, 109, 113, 109, 160, 160, 160,
    160, 160, 160, 160, 723, 113, 109, 723,
    160, 160, 160, 160, 160, 160, 160, 160,

    105, 106, 105, 106, 105, 106, 105, 106,
    105, 106, 105, 106, 105, 106, 105, 106,
    105, 106, 105, 106, 105, 106, 105, 106,
    105, 106, 105, 106, 105, 106, 105, 106,

    105, 106, 105, 106, 103, 418, 418, 418,
    418, 418, 418, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 620, 620, 620, 620, 724, 620, 620,

    725, 725, 725, 725, 725, 725, 725, 725,
    725, 725, 725, 725, 725, 725, 725, 725,
    725, 725, 725, 725, 725, 725, 725, 725,
    725, 725, 725, 725, 725, 725, 725, 725,

    725, 725, 725, 725, 725, 725, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,

    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,

    323, 323, 323, 323, 323, 323, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 401,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    323, 323, 323, 323, 323, 323, 323, 160,
    323, 323, 323, 323, 323, 323, 323, 160,
    323, 323, 323, 323, 323, 323, 323, 160,
    323, 323, 323, 323, 323, 323, 323, 160,

    726, 726, 727, 728, 727, 728, 726, 726,
    726, 727, 728, 726, 727, 728, 620, 620,
    620, 620, 620, 620, 620, 620, 619, 729,
    160, 160, 160, 160, 727, 728, 160, 160,

    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 160, 730, 730, 730, 730, 730,

    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,

    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 160, 160, 160, 160,

    731, 732, 733, 734, 735, 736, 737, 738,
    16, 17, 16, 17, 16, 17, 16, 17,
    16, 17, 735, 735, 16, 17, 16, 17,
    16, 17, 16, 17, 739, 16, 17, 740,

    735, 738, 738, 738, 738, 738, 738, 738,
    738, 738, 741, 742, 140, 743, 744, 744,
    745, 746, 746, 746, 746, 746, 735, 735,
    747, 747, 747, 748, 749, 750, 730, 735,

    160, 751, 737, 751, 737, 751, 737, 751,
    737, 751, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,

    737, 737, 737, 751, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,

    737, 737, 737, 751, 737, 751, 737, 751,
    737, 737, 737, 737, 737, 737, 751, 737,
    737, 737, 737, 737, 737, 752, 752, 160,
    160, 753, 753, 754, 754, 755, 755, 756,

    757, 758, 759, 758, 759, 758, 759, 758,
    759, 758, 759, 759, 759, 759, 759, 759,
    759, 759, 759, 759, 759, 759, 759, 759,
    759, 759, 759, 759, 759, 759, 759, 759,

    759, 759, 759, 758, 759, 759, 759, 759,
    759, 759, 759, 759, 759, 759, 759, 759,
    759, 759, 759, 759, 759, 759, 759, 759,
    759, 759, 759, 759, 759, 759, 759, 759,

    759, 759, 759, 758, 759, 758, 759, 758,
    759, 759, 759, 759, 759, 759, 758, 759,
    759, 759, 759, 759, 759, 758, 758, 759,
    759, 759, 759, 760, 761, 761, 761, 762,

    160, 160, 160, 160, 160, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,

    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 160, 160, 160,
    160, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,

    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 763,

    763, 763, 763, 763, 763, 763, 763, 763,
    763, 763, 763, 763, 763, 763, 763, 160,
    764, 764, 765, 765, 765, 765, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,

    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,
    160, 160, 160, 160, 160, 160, 160, 160,

    767, 767, 767, 767, 767, 767, 767, 767,
    767, 767, 767, 767, 767, 767, 767, 767,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    768, 768, 768, 768, 768, 768, 768, 768,
    768, 768, 768, 768, 768, 768, 768, 768,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 769, 769, 160,

    765, 765, 765, 765, 765, 765, 765, 765,
    765, 765, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,

    764, 764, 764, 764, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    769, 770, 770, 770, 770, 770, 770, 770,
    770, 770, 770, 770, 770, 770, 770, 770,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 769, 769, 767, 764,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 770, 770, 770, 770, 770, 770, 770,
    770, 770, 770, 770, 770, 770, 770, 770,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 769, 769, 769, 769,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 160,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 769,
    769, 769, 769, 764, 764, 764, 764, 764,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 769, 769,

    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 764,
    764, 764, 764, 764, 764, 764, 764, 769,

    771, 771, 771, 771, 771, 771, 771, 771,
    771, 771, 771, 771, 771, 771, 771, 771,
    771, 771, 771, 771, 771, 771, 771, 771,
    771, 771, 771, 771, 771, 771, 771, 771,

    771, 771, 771, 771, 771, 771, 771, 771,
    771, 771, 771, 771, 771, 771, 771, 771,
    771, 771, 771, 771, 771, 771, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 737, 737,

    737, 737, 737, 737, 737, 737, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 160, 160, 160, 160,

    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 773, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,

    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 766, 766, 766,

    766, 766, 766, 766, 766, 766, 766, 766,
    766, 766, 766, 766, 766, 160, 160, 160,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,

    730, 730, 774, 774, 730, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,
    730, 730, 730, 730, 774, 730, 730, 730,
    730, 730, 730, 730, 730, 730, 730, 730,

    730, 774, 730, 730, 730, 774, 730, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    775, 775, 775, 775, 775, 775, 775, 775,
    775, 775, 775, 775, 775, 775, 775, 775,
    775, 775, 775, 775, 775, 775, 775, 776,
    776, 776, 776, 160, 160, 160, 160, 160,

    777, 777, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    323, 323, 778, 323, 323, 323, 779, 323,
    323, 323, 323, 780, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,
    323, 323, 323, 323, 323, 323, 323, 323,

    323, 323, 323, 464, 464, 780, 780, 464,
    418, 418, 418, 418, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,

    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 781, 781, 304, 304,
    160, 160, 160, 160, 160, 160, 160, 160,

    782, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 782, 783, 783, 783,

    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    782, 783, 783, 783, 783, 783, 783, 783,

    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 782, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,

    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    782, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,

    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 782, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,

    783, 783, 783, 783, 783, 783, 783, 783,
    782, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,

    783, 783, 783, 783, 782, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,
    783, 783, 783, 783, 783, 783, 783, 783,

    783, 783, 783, 783, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    784, 784, 784, 784, 784, 784, 784, 784,
    784, 784, 784, 784, 784, 784, 784, 784,
    784, 784, 784, 784, 784, 784, 784, 784,
    784, 784, 784, 784, 784, 784, 784, 784,

    785, 785, 785, 785, 785, 785, 785, 785,
    785, 785, 785, 785, 785, 785, 785, 785,
    785, 785, 785, 785, 785, 785, 785, 785,
    785, 785, 785, 785, 785, 785, 785, 785,

    737, 737, 737, 737, 737, 737, 737, 737,
    737, 737, 737, 737, 737, 737, 160, 160,
    786, 786, 786, 786, 786, 786, 786, 786,
    786, 786, 786, 786, 786, 786, 786, 786,

    786, 786, 786, 786, 786, 786, 786, 786,
    786, 786, 786, 786, 786, 786, 786, 786,
    786, 786, 786, 786, 786, 786, 786, 786,
    786, 786, 786, 786, 786, 786, 786, 786,

    786, 786, 786, 786, 786, 786, 786, 786,
    786, 786, 786, 160, 160, 160, 160, 160,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,

    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,

    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 772, 772, 772, 772, 772, 772,
    772, 772, 160, 160, 160, 160, 160, 160,

    787, 788, 789, 790, 791, 792, 792, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 793, 794, 795, 796, 797,
    160, 160, 160, 160, 160, 798, 799, 231,

    231, 231, 231, 231, 231, 231, 231, 231,
    231, 633, 231, 231, 231, 231, 231, 231,
    231, 231, 231, 231, 231, 231, 231, 205,
    231, 231, 231, 231, 231, 205, 231, 205,

    231, 231, 205, 231, 231, 205, 231, 231,
    231, 231, 231, 231, 231, 231, 231, 231,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,

    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,

    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 235, 235, 235, 235, 235, 235,
    235, 235, 235, 235, 235, 235, 235, 235,

    235, 235, 235, 235, 235, 235, 235, 235,
    235, 235, 235, 235, 235, 235, 235, 235,
    235, 235, 235, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,

    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 598, 740,

    235, 235, 235, 235, 235, 235, 235, 235,
    235, 235, 235, 235, 235, 235, 235, 235,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,

    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    235, 235, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,

    243, 243, 243, 243, 243, 243, 243, 243,
    235, 235, 235, 235, 235, 235, 235, 235,
    800, 800, 800, 800, 800, 800, 800, 800,
    800, 800, 800, 800, 800, 800, 800, 800,

    800, 800, 800, 800, 800, 800, 800, 800,
    800, 800, 800, 800, 800, 800, 800, 800,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 801, 239, 235, 235,

    423, 423, 423, 423, 423, 423, 423, 423,
    423, 423, 423, 423, 423, 423, 423, 423,
    802, 803, 803, 802, 802, 804, 804, 805,
    806, 807, 160, 160, 160, 160, 160, 160,

    139, 139, 139, 139, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    734, 745, 745, 808, 808, 598, 740, 598,
    740, 598, 740, 598, 740, 598, 740, 598,

    740, 598, 740, 598, 740, 750, 750, 809,
    810, 734, 734, 734, 734, 808, 808, 808,
    811, 734, 812, 160, 760, 813, 9, 9,
    745, 16, 17, 16, 17, 16, 17, 814,

    734, 734, 815, 816, 817, 818, 819, 160,
    734, 12, 13, 734, 160, 160, 160, 160,
    243, 243, 243, 286, 243, 235, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,

    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 243, 243, 243,
    243, 243, 243, 243, 243, 235, 235, 820,

    160, 9, 734, 814, 12, 13, 734, 734,
    16, 17, 734, 815, 811, 816, 812, 821,
    822, 823, 824, 825, 826, 827, 828, 829,
    830, 831, 813, 760, 832, 819, 833, 9,

    734, 834, 834, 834, 834, 834, 834, 834,
    834, 834, 834, 834, 834, 834, 834, 834,
    834, 834, 834, 834, 834, 834, 834, 834,
    834, 834, 834, 39, 734, 41, 835, 808,

    835, 836, 836, 836, 836, 836, 836, 836,
    836, 836, 836, 836, 836, 836, 836, 836,
    836, 836, 836, 836, 836, 836, 836, 836,
    836, 836, 836, 39, 819, 41, 819, 698,

    699, 733, 16, 17, 732, 760, 837, 758,
    758, 758, 758, 758, 758, 758, 758, 758,
    761, 837, 837, 837, 837, 837, 837, 837,
    837, 837, 837, 837, 837, 837, 837, 837,

    837, 837, 837, 837, 837, 837, 837, 837,
    837, 837, 837, 837, 837, 837, 837, 837,
    837, 837, 837, 837, 837, 837, 837, 837,
    837, 837, 837, 837, 837, 837, 761, 761,

    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 90,
    90, 90, 90, 90, 90, 90, 90, 160,

    160, 160, 90, 90, 90, 90, 90, 90,
    160, 160, 90, 90, 90, 90, 90, 90,
    160, 160, 90, 90, 90, 90, 90, 90,
    160, 160, 90, 90, 90, 160, 160, 160,

    48, 12, 819, 835, 735, 12, 12, 160,
    49, 36, 36, 36, 36, 49, 49, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 838, 838, 838, 839, 49, 840, 840,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 160, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,

    308, 308, 308, 308, 308, 308, 308, 160,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 160, 308, 308, 160, 308,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 160, 160,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 160, 160,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 160, 160, 160, 160, 160,

    841, 842, 843, 160, 160, 160, 160, 844,
    844, 844, 844, 844, 844, 844, 844, 844,
    844, 844, 844, 844, 844, 844, 844, 844,
    844, 844, 844, 844, 844, 844, 844, 844,

    844, 844, 844, 844, 844, 844, 844, 844,
    844, 844, 844, 844, 844, 844, 844, 844,
    844, 844, 844, 844, 160, 160, 160, 845,
    845, 845, 845, 845, 845, 845, 845, 845,

    846, 846, 846, 846, 846, 846, 846, 846,
    846, 846, 846, 846, 846, 846, 846, 846,
    846, 846, 846, 846, 846, 846, 846, 846,
    846, 846, 846, 846, 846, 846, 846, 846,

    846, 846, 846, 846, 846, 846, 846, 846,
    846, 846, 846, 846, 846, 846, 846, 846,
    846, 846, 846, 846, 846, 724, 724, 724,
    724, 418, 418, 418, 418, 418, 418, 418,

    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 724, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    847, 847, 847, 847, 847, 847, 847, 847,
    847, 847, 847, 847, 847, 847, 847, 847,
    847, 847, 847, 847, 847, 847, 847, 847,
    847, 847, 847, 847, 847, 847, 847, 160,

    848, 848, 848, 848, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    847, 847, 847, 847, 847, 847, 847, 847,
    847, 847, 847, 847, 847, 847, 847, 847,

    847, 849, 847, 847, 847, 847, 847, 847,
    847, 847, 849, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 160, 841,

    323, 323, 323, 323, 160, 160, 160, 160,
    323, 323, 323, 323, 323, 323, 323, 323,
    465, 850, 850, 850, 850, 850, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    851, 851, 851, 851, 851, 851, 851, 851,
    851, 851, 851, 851, 851, 851, 851, 851,
    851, 851, 851, 851, 851, 851, 851, 851,
    851, 851, 851, 851, 851, 851, 851, 851,

    851, 851, 851, 851, 851, 851, 852, 852,
    853, 853, 853, 853, 853, 853, 853, 853,
    853, 853, 853, 853, 853, 853, 853, 853,
    853, 853, 853, 853, 853, 853, 853, 853,

    853, 853, 853, 853, 853, 853, 853, 853,
    853, 853, 853, 853, 853, 853, 854, 854,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,

    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 308, 308,
    308, 308, 308, 308, 308, 308, 160, 160,

    441, 442, 443, 444, 445, 446, 447, 448,
    449, 450, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    855, 855, 855, 855, 855, 855, 205, 205,
    855, 205, 855, 855, 855, 855, 855, 855,
    855, 855, 855, 855, 855, 855, 855, 855,
    855, 855, 855, 855, 855, 855, 855, 855,

    855, 855, 855, 855, 855, 855, 855, 855,
    855, 855, 855, 855, 855, 855, 855, 855,
    855, 855, 855, 855, 855, 855, 205, 855,
    855, 205, 205, 205, 855, 205, 205, 855,

    856, 856, 856, 856, 856, 856, 856, 856,
    856, 856, 856, 856, 856, 856, 856, 856,
    856, 856, 856, 856, 856, 856, 857, 857,
    857, 857, 205, 205, 205, 205, 205, 858,

    859, 780, 780, 780, 205, 780, 780, 205,
    205, 205, 205, 205, 780, 152, 780, 153,
    859, 859, 859, 859, 205, 859, 859, 859,
    205, 859, 859, 859, 859, 859, 859, 859,

    859, 859, 859, 859, 859, 859, 859, 859,
    859, 859, 859, 859, 859, 859, 859, 859,
    859, 859, 859, 859, 205, 205, 205, 205,
    153, 641, 152, 205, 205, 205, 205, 779,

    860, 861, 862, 863, 864, 864, 864, 864,
    205, 205, 205, 205, 205, 205, 205, 205,
    865, 865, 865, 865, 865, 865, 865, 865,
    866, 205, 205, 205, 205, 205, 205, 205,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,

    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 322,
    322, 322, 322, 322, 322, 322, 322, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 867, 867, 867, 867, 867,
    867, 867, 867, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    481, 481, 481, 481, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 160,
    160, 160, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 869, 870, 871,
    871, 871, 868, 868, 868, 872, 869, 869,
    869, 869, 869, 873, 873, 873, 873, 873,
    873, 873, 873, 874, 874, 874, 874, 874,
    874, 874, 874, 868, 868, 875, 875, 875,
    875, 875, 874, 874, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 875, 875, 875, 875, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 868, 868,
    868, 868, 868, 868, 868, 868, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 418, 418, 418, 418, 418, 418,
    418, 418, 153, 153, 153, 418, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 239,
    239, 239, 239, 239, 239, 239, 239, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    876, 876, 876, 876, 876, 876, 876, 876,
    876, 876, 876, 876, 876, 876, 876, 876,
    876, 876, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 878, 878,
    878, 878, 878, 878, 878, 160, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 877, 160, 877, 877,
    160, 160, 877, 160, 160, 877, 877, 160,
    160, 877, 877, 877, 877, 160, 877, 877,
    877, 877, 877, 877, 877, 877, 878, 878,
    878, 878, 160, 878, 160, 878, 878, 878,
    878, 102, 878, 878, 160, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,

    878, 878, 878, 878, 877, 877, 160, 877,
    877, 877, 877, 160, 160, 877, 877, 877,
    877, 877, 877, 877, 877, 160, 877, 877,
    877, 877, 877, 877, 877, 160, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    877, 877, 160, 877, 877, 877, 877, 160,
    877, 877, 877, 877, 877, 160, 877, 160,
    160, 160, 877, 877, 877, 877, 877, 877,
    877, 160, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,

    878, 878, 878, 878, 878, 878, 878, 878,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 103, 103, 160, 160,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 879, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 879, 878, 878, 878, 878,
    878, 878, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 879, 878, 878, 878, 878,

    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 879, 878, 878,
    878, 878, 878, 878, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 879, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 879,
    878, 878, 878, 878, 878, 878, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 879,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 879, 878, 878, 878, 878, 878, 878,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 877, 877, 877, 877, 877, 877, 877,
    877, 879, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 878, 878, 878, 878, 878,
    878, 878, 878, 879, 878, 878, 878, 878,
    878, 878, 880, 723, 160, 160, 881, 882,
    883, 884, 885, 886, 887, 888, 889, 890,
    881, 882, 883, 884, 885, 886, 887, 888,
    889, 890, 881, 882, 883, 884, 885, 886,
    887, 888, 889, 890, 881, 882, 883, 884,
    885, 886, 887, 888, 889, 890, 881, 882,
    883, 884, 885, 886, 887, 888, 889, 890,

    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 891, 891,

    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,

    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 892, 892,
    892, 892, 892, 892, 892, 892, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    160, 873, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    873, 873, 873, 873, 873, 873, 873, 873,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    326, 326, 326, 326, 326, 326, 326, 326,
    160, 160, 160, 160, 160, 160, 160, 160,
    160, 160, 160, 160, 160, 160, 160, 160,

    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,

    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 893, 893,
    893, 893, 893, 893, 893, 893, 891, 891,
};

#define GET_PROP_INDEX(ucs4) \
	   (ucs4 < 0x11000 \
		? (uc_property_trie[uc_property_trie[ucs4>>5] + (ucs4 & 0x1f)]) \
		: (uc_property_trie[uc_property_trie[((ucs4 - 0x11000)>>8) + 0x880] + (ucs4 & 0xff)]))

#define GET_PROP_INDEX_UCS2(ucs2) \
(uc_property_trie[uc_property_trie[ucs2>>5] + (ucs2 & 0x1f)])

static const Properties uc_properties[] = {
    { 10, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
    { 10, 15, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
    { 10, 30, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1 },
    { 10, 31, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
    { 10, 31, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
    { 10, 29, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1 },
    { 10, 19, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
    { 10, 19, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
    { 7, 28, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 26, 5, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 26, 11, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 8, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10 },
    { 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 27, 8, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
    { 21, 14, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8 },
    { 26, 6, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 10, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
    { 26, 7, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 3, 5 },
    { 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 10 },
    { 26, 8, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 10 },
    { 29, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 20, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -32, -32, 0, 0, 3, 4 },
    { 27, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 10, 11, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
    { 7, 3, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 28, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 10 },
    { 11, 15, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 30, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 8, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 29, 16, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 743, 743, 775, 0, 3, 4 },
    { 26, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
    { 6, 11, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 10 },
    { 6, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 121, 121, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -232, -232, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 85, 85, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -121, 0, 0, -121, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -300, -300, -268, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 195, 195, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 210, 0, 0, 210, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 206, 0, 0, 206, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 205, 0, 0, 205, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 79, 0, 0, 79, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 202, 0, 0, 202, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 203, 0, 0, 203, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 207, 0, 0, 207, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 97, 97, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 211, 0, 0, 211, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 209, 0, 0, 209, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 163, 163, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 213, 0, 0, 213, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 130, 130, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 214, 0, 0, 214, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 218, 0, 0, 218, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 217, 0, 0, 217, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 219, 0, 0, 219, 0, 3, 5 },
    { 19, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 2, 0, 1, 2, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -1, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -79, -79, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 96, 96, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, -97, 0, 0, -97, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, -56, 0, 0, -56, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, -130, 0, 0, -130, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 10795, 0, 0, 10795, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, -163, 0, 0, -163, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 10792, 0, 0, 10792, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -195, 0, 0, -195, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 69, 0, 0, 69, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 71, 0, 0, 71, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -210, -210, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -206, -206, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -205, -205, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -203, -203, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -207, -207, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -209, -209, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -211, -211, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 10743, 10743, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -213, -213, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -214, -214, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 10727, 10727, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -218, -218, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -69, -69, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -217, -217, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -71, -71, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -219, -219, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 18, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 18, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 18, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 18, 16, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 29, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 29, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 230, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 232, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 220, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 216, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 202, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 240, 0, -1, 1, 0, 0, 0, 0, 0, 0, 84, 84, 116, 4, 1, 0 },
    { 1, 19, 17, 230, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 220, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 3, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 230, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 220, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 232, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 220, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 230, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 3, 17, 233, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 3, 17, 234, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 3, 17, 233, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 3, 17, 234, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 3, 17, 233, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 230, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 14, 11, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 130, 130, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 38, 0, 0, 38, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 37, 0, 0, 37, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 64, 0, 0, 64, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 63, 0, 0, 63, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 88, 88, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -38, -38, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -37, -37, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 92, 92, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -31, -31, 1, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -64, -64, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -63, -63, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -62, -62, -30, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -57, -57, -25, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -47, -47, -15, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -54, -54, -22, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -86, -86, -54, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -80, -80, -48, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, -60, 0, 0, -60, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, -96, -96, -64, 0, 3, 4 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, -7, 0, 0, -7, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, -130, 0, 0, -130, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, -80, -80, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -80, -80, 0, 0, 3, 4 },
    { 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 3, 19, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 15, 0, 0, 15, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -15, -15, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 3, 5 },
    { 26, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 52, 49, 0, 0, 3, 4 },
    { 26, 7, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9 },
    { 21, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 14, 11, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 220, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 230, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 222, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 228, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 10, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 11, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 12, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 13, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 14, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 15, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 16, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 17, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 18, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 19, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 19, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 20, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 21, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 22, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 15, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 23, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 24, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 25, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 5, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 18, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 19, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
    { 11, 11, 13, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 14, 11, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 9, 13, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 5, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 7, 13, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
    { 30, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 5, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 5, 13, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 5, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 19, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 13, 0, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 13, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 18, 11, 13, 0, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 27, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 28, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 29, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 30, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 31, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 32, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 33, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 34, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 4, 10, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 5, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 26, 5, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 10, 5, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 26, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 11, 13, 0, 1, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 35, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 19, 11, 13, 0, 1, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 13, 0, 2, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 11, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 3, 19, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 18, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 13, 0, 2, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 11, 13, 0, 1, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 26, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 11, 11, 18, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 1, 19, 17, 36, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 19, 11, 13, 0, 1, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 13, 0, 2, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 19, 11, 13, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 4, 10, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 1, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 19, 11, 1, 0, 1, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 230, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 220, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 18, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 7, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
    { 26, 5, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 18, 11, 1, 0, 3, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 7, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 9, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 15, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 4, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 19, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 2, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 6, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 28, 8, 4, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 10, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 1, 19, 17, 84, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 91, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 7, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 9, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 26, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 1, 26, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 26, 17, 103, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 26, 17, 9, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 18, 26, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 1, 26, 17, 107, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 15, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 26, 17, 118, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 26, 17, 122, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 19, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 16, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 16, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 3, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 5, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 5, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 10, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 6, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 216, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 22, 0, 10, 0, 0, -1, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 2, 19, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 129, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 130, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 132, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 9, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 30, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 16, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 2, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 1, 26, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 26, 17, 7, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 26, 17, 9, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 4, 10, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 26, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 7264, 0, 0, 7264, 0, 3, 5 },
    { 19, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 18, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 23, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 6 },
    { 19, 24, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 6 },
    { 19, 25, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 6 },
    { 30, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 6, 11, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 7, 15, 9, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 22, 0, 10, 0, 0, -1, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 4, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 5, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 9, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 15, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 11, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 26, 4, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 28, 8, 4, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 26, 17, 230, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 6, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 21, 16, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 7, 3, 9, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 1, 19, 17, 228, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 17, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 222, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 5, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 4, 10, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 19, 26, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 19, 26, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 2, 26, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 4, 10, 0, 0, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 26, 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 2, 19, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 26, 15, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 2, 19, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 7, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 9, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 10, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 26, 15, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 15, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 18, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 3814, 3814, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 99, 99, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 102, 102, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 105, 105, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 108, 108, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 111, 111, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, -59, -59, -58, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8, 0, 0, -8, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 114, 114, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 117, 117, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 121, 121, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 125, 125, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 74, 74, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 86, 86, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 100, 100, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 112, 112, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 126, 126, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 163, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 166, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 169, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 172, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 175, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 178, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 181, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 184, 8, 0, 0, 3, 4 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 163, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 166, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 169, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 172, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 175, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 178, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 181, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 184, 0, -8, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 187, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 190, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 193, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 196, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 199, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 202, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 205, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 208, 8, 0, 0, 3, 4 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 187, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 190, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 193, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 196, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 199, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 202, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 205, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 208, 0, -8, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 211, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 214, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 217, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 220, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 223, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 226, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 229, 8, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 232, 8, 0, 0, 3, 4 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 211, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 214, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 217, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 220, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 223, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 226, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 229, 0, -8, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 232, 0, -8, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 247, 244, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 235, 9, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 253, 250, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 129, 129, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 284, 280, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 235, 0, -9, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -7205, -7205, -7173, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 259, 256, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 238, 9, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 265, 262, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 132, 132, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 292, 288, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -86, 0, 0, -86, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 238, 0, -9, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 135, 135, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 139, 139, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 142, 142, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -100, 0, 0, -100, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 146, 146, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 150, 150, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 153, 153, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 156, 156, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -112, 0, 0, -112, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -7, 0, 0, -7, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 271, 268, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 241, 9, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 277, 274, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 160, 160, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 300, 296, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -128, 0, 0, -128, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -126, 0, 0, -126, 0, 3, 5 },
    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 241, 0, -9, 0, 3, 5 },
    { 7, 15, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 7, 3, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 11, 18, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 11, 19, 18, 0, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 11, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 21, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 21, 3, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 21, 17, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 21, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 4, 10 },
    { 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 26, 13, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
    { 8, 31, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
    { 9, 31, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
    { 11, 19, 11, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 14, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 16, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 12, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 15, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 7, 3, 6, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 26, 9, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 27, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
    { 26, 4, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 4, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 20, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
    { 26, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 7, 15, 9, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 11, 20, 18, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 11, 18, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 11, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 6, 11, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 6, 11, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 8, 4, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 8, 4, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 8, 4, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 8, 4, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 3, 19, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 1, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 220, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 1, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 30, 9, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 8, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -7517, 0, 0, -7517, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8383, 0, 0, -8383, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8262, 0, 0, -8262, 0, 3, 5 },
    { 30, 11, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 28, 0, 0, 28, 0, 3, 5 },
    { 30, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
    { 30, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -28, -28, 0, 0, 3, 4 },
    { 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 3, 5 },
    { 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -16, -16, 0, 0, 3, 4 },
    { 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2016, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2104, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2108, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 2, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 26, 0, 0, 26, 0, 3, 5 },
    { 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -26, -26, 0, 0, 3, 4 },
    { 6, 11, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 10, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 30, 5, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
    { 22, 0, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
    { 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 10 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1824, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2016, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2104, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2106, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2108, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 3, 4 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -10743, 0, 0, -10743, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -3814, 0, 0, -3814, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -10727, 0, 0, -10727, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -10795, -10795, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -10792, -10792, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 6, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -7264, -7264, 0, 0, 3, 4 },
    { 26, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 24, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
    { 25, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
    { 21, 15, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 12, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 7, 12, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
    { 26, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 5, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 21, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 1, 19, 17, 218, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 228, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 222, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 224, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 21, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 5, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 18, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 26, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 1, 19, 17, 8, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 29, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
    { 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 21, 4, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
    { 19, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 26, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 12, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 30, 12, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 19, 12, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 18, 4, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 29, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 18, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 29, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 2, 19, 17, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 9, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 26, 16, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 21, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 6 },
    { 19, 22, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 6 },
    { 12, 27, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 13, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 12, 9, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 18, 15, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 24, 21, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 31, 27, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 39, 35, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 46, 43, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 58, 55, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 64, 61, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 70, 67, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 76, 73, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 82, 79, 0, 0, 3, 4 },
    { 19, 11, 1, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 1, 19, 17, 26, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 14, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 28, 9, 13, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 7, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
    { 26, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 5, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 22, 0, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 26, 13, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 20, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
    { 22, 0, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 23, 1, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
    { 26, 1, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 1, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
    { 26, 4, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 12, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 12, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 21, 12, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 11, 20, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 26, 12, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 4, 12, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 3, 5 },
    { 29, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 16, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -32, -32, 0, 0, 3, 4 },
    { 19, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
    { 11, 19, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 30, 11, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 14, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 15, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 30, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 5, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 6, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 5, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 5, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 40, 0, 0, 40, 0, 3, 5 },
    { 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 40, 0, 0, 40, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 3, 4 },
    { 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 3, 4 },
    { 19, 11, 1, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 19, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 6, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 6, 11, 1, 0, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 1, 0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 1, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 1, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 6, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 15, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 26, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 5, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
    { 30, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 2, 19, 0, 216, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 216, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 19, 17, 1, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 2, 19, 0, 226, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 11, 19, 18, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
    { 1, 19, 17, 220, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 1, 19, 17, 230, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
    { 6, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
    { 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
    { 27, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
    { 4, 10, 2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 4, 10, 2, 0, 0, 9, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
    { 14, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 19, 12, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
    { 13, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};


static inline const Properties *qGetProp(ushort ucs2) {
    int index = GET_PROP_INDEX_UCS2(ucs2);
    return uc_properties + index;
}

#define MAX_BUFF_SIZE (long)1024*1024
/* Block sizes */
#define HEADER_SIZE			768
#define BIG_BLOCK_SIZE			512
#define PROPERTY_SET_STORAGE_SIZE	128
#define SMALL_BLOCK_SIZE		 64

/* PPT Data*/
#define PPT_RECORD_HEADER 8
#define PPT_TEXTCHARATOM 0x0FA0
#define PPT_TEXTBYTEATOM 0x0FA8

/* Special block numbers */
#define END_OF_CHAIN			0xfffffffeUL
#define UNUSED_BLOCK			0xffffffffUL

/* Switch size of Depot use */
#define MIN_SIZE_FOR_BBD_USE		0x1000

#define STREQ(x,y)	(*(x) == *(y) && strcmp(x,y) == 0)
#define STRNEQ(x,y,n)	(*(x) == *(y) && strncmp(x,y,n) == 0)

#define BIT(x)		(1UL << (x))

static ULONG	*aulSmallBlockList = NULL;
static size_t	tSmallBlockListLen = 0;
static UCHAR	**ppAnchor = NULL;
static size_t	tNextFree = 0;
static size_t	tMaxElements = 0;
#define ELEMENTS_TO_ADD	30

/* Show that a PPS number or index should not be used */
#define PPS_NUMBER_INVALID	0xffffffffUL

/* Macros */
/* Get macros */
#define ucGetByte(i,a)		((unsigned char)(a[i]))
#define usGetWord(i,a)		((unsigned short)\
					((unsigned int)(a[(i)+1])<<8|\
					 (unsigned int)(a[i])))
#define ulGetLong(i,a)		((unsigned long)(a[i])|\
					(unsigned long)(a[(i)+1])<<8|\
					(unsigned long)(a[(i)+2])<<16|\
					(unsigned long)(a[(i)+3])<<24)
#define usGetWordBE(i,a)	((unsigned short)\
					((unsigned int)(a[i])<<8|\
					 (unsigned int)(a[(i)+1])))
#define ulGetLongBE(i,a)	((unsigned long)(a[(i)+3])|\
					(unsigned long)(a[(i)+2])<<8|\
					(unsigned long)(a[(i)+1])<<16|\
					(unsigned long)(a[i])<<24)

void* xmalloc(size_t tSize) {
    void	*pvTmp;

    if(tSize == 0) {
        tSize = 1;
    }
    pvTmp = malloc(tSize);
    if(pvTmp == NULL) {
        return NULL;
    }
    return pvTmp;
} /* end of xmalloc */

void* xcalloc(size_t tNmemb, size_t tSize) {
    void	*pvTmp;

    if(tNmemb == 0 || tSize == 0) {
        tNmemb = 1;
        tSize = 1;
    }
    pvTmp = calloc(tNmemb, tSize);
    if(pvTmp == NULL) {
        return NULL;
    }
    return pvTmp;
} /* end of xcalloc */

void* xrealloc(void *pvArg, size_t tSize) {
    void	*pvTmp;

    pvTmp = realloc(pvArg, tSize);
    return pvTmp;
} /* end of xrealloc */


void* xfree(void *pvArg) {
    if(pvArg != NULL) {
        free(pvArg);
    }
    return NULL;
} /* end of xfree */

bool bReadBytes(unsigned char *aucBytes, size_t tMemb, long lOffset, FILE *pFile) {
//    printf("[%s]-[%d] wana read [%d] offset[%d]\n",__FUNCTION__,__LINE__,tMemb, lOffset);

    if(fseek(pFile, lOffset, SEEK_SET) != 0) {
        return false;
    }
    if(fread(aucBytes, sizeof(unsigned char), tMemb, pFile) != tMemb) {
        return false;
    }
    return true;
} /* end of bReadBytes */

#define SIZE_RATIO	(BIG_BLOCK_SIZE/SMALL_BLOCK_SIZE)

ULONG ulDepotOffset(ULONG ulIndex, size_t tBlockSize) {
    ULONG	ulTmp;
    size_t	tTmp;

    switch(tBlockSize) {
    case BIG_BLOCK_SIZE:
        return (ulIndex + 1) * BIG_BLOCK_SIZE;
    case SMALL_BLOCK_SIZE:
        tTmp = (size_t)(ulIndex / SIZE_RATIO);
        ulTmp = ulIndex % SIZE_RATIO;
        if(aulSmallBlockList == NULL ||
                tTmp >= tSmallBlockListLen) {
            return 0;
        }
        return ((aulSmallBlockList[tTmp] + 1) * SIZE_RATIO +
                ulTmp) * SMALL_BLOCK_SIZE;
    default:
        return 0;
    }
} /* end of ulDepotOffset */

bool bReadBuffer(FILE *pFile, ULONG ulStartBlock,
                 const ULONG *aulBlockDepot, size_t tBlockDepotLen, size_t tBlockSize,
                 UCHAR *aucBuffer, ULONG ulOffset, size_t tToRead) {
    ULONG	ulBegin, ulIndex;
    size_t	tLen;

    for(ulIndex = ulStartBlock;ulIndex != END_OF_CHAIN && tToRead != 0;ulIndex = aulBlockDepot[ulIndex]) {
        if(ulIndex >= (ULONG)tBlockDepotLen) {
            if(tBlockSize >= BIG_BLOCK_SIZE) {
                qWarning() << "The Big Block Depot is damaged";
            } else {
                qWarning() << "The Small Block Depot is damaged";
            }
            return (tToRead == 0);
        }
        if(ulOffset >= (ULONG)tBlockSize) {
            ulOffset -= tBlockSize;
            continue;
        }
        ulBegin = ulDepotOffset(ulIndex, tBlockSize) + ulOffset;
        tLen = min(tBlockSize - (size_t)ulOffset, tToRead);
        ulOffset = 0;
        if(!bReadBytes(aucBuffer, tLen, ulBegin, pFile)) {
            return false;
        }
        aucBuffer += tLen;
        tToRead -= tLen;
    }
    return (tToRead == 0);
} /* end of bReadBuffer */

static ULONG ulReadLong(FILE *pFile, ULONG ulOffset) {
    UCHAR	aucBytes[4];

    if(!bReadBytes(aucBytes, 4, ulOffset, pFile)) {
        return -1;
    }
    return ulGetLong(0, aucBytes);
} /* end of ulReadLong */

static size_t tReadBlockIndices(FILE *pFile, ULONG *aulBlockDepot,
                                size_t tMaxRec, ULONG ulOffset) {
    size_t	tDone;
    int	iIndex;
    UCHAR	aucBytes[BIG_BLOCK_SIZE];

    /* Read a big block with BBD or SBD indices */
    if(!bReadBytes(aucBytes, BIG_BLOCK_SIZE, ulOffset, pFile)) {
        return 0;
    }
    /* Split the big block into indices, an index is four bytes */
    tDone = min(tMaxRec, (size_t)BIG_BLOCK_SIZE / 4);
    for(iIndex = 0; iIndex < (int)tDone; iIndex++) {
        aulBlockDepot[iIndex] = ulGetLong(4 * iIndex, aucBytes);
    }
    return tDone;
} /* end of tReadBlockIndices */

static bool bGetSBD(FILE *pFile, const ULONG *aulDepot, size_t tDepotLen,
                    ULONG *aulSBD, size_t tSBDLen) {
    ULONG	ulBegin;
    size_t	tToGo, tDone;
    int	iIndex;

    tToGo = tSBDLen;
    for(iIndex = 0; iIndex < (int)tDepotLen && tToGo != 0; iIndex++) {
        ulBegin = (aulDepot[iIndex] + 1) * BIG_BLOCK_SIZE;
        tDone = tReadBlockIndices(pFile, aulSBD, tToGo, ulBegin);
        if(tDone == 0) {
            return false;
        }
        aulSBD += tDone;
        tToGo -= tDone;
    }
    return tToGo == 0;
} /* end of bGetSBD */

static void vName2String(char *szName, const UCHAR *aucBytes, size_t tNameSize) {
    char	*pcChar;
    size_t	tIndex;

    if(tNameSize < 2) {
        szName[0] = '\0';
        return;
    }
    for(tIndex = 0, pcChar = szName; tIndex < 2 * tNameSize; tIndex += 2, pcChar++) {
        *pcChar = (char)aucBytes[tIndex];
    }
    szName[tNameSize - 1] = '\0';
} /* end of vName2String */


void vAdd2PropModList(const UCHAR *aucPropMod) {
    size_t	tSize, tLen;

    if(tNextFree >= tMaxElements) {
        tMaxElements += ELEMENTS_TO_ADD;
        tSize = tMaxElements * sizeof(UCHAR **);
        ppAnchor = (UCHAR**)xrealloc(ppAnchor, tSize);
    }

    tLen = 2 + (size_t)usGetWord(0, aucPropMod);
    ppAnchor[tNextFree] = (UCHAR*)xmalloc(tLen);
    memcpy(ppAnchor[tNextFree], aucPropMod, tLen);
    tNextFree++;
} /* end of vAdd2PropModList */

static void vComputePPSlevels(ppsEntryType *atPPSlist, ppsEntryType *pNode,
                              int iLevel, int iRecursionLevel) {
    if(iRecursionLevel > 25) {
        /* This removes the possibility of an infinite recursion */
        return;
    }
    if(pNode->iLevel <= iLevel) {
        /* Avoid entering a loop */
        return;
    }

    pNode->iLevel = iLevel;

    if(pNode->ulDir != PPS_NUMBER_INVALID) {
        vComputePPSlevels(atPPSlist,
                          &atPPSlist[pNode->ulDir],
                          iLevel + 1,
                          iRecursionLevel + 1);
    }
    if(pNode->ulNext != PPS_NUMBER_INVALID) {
        vComputePPSlevels(atPPSlist,
                          &atPPSlist[pNode->ulNext],
                          iLevel,
                          iRecursionLevel + 1);
    }
    if(pNode->ulPrevious != PPS_NUMBER_INVALID) {
        vComputePPSlevels(atPPSlist,
                          &atPPSlist[pNode->ulPrevious],
                          iLevel,
                          iRecursionLevel + 1);
    }
} /* end of vComputePPSlevels */


bool KBinaryParser::bGetPPS(FILE *pFile,
                            const ULONG *aulRootList, size_t tRootListLen, ppsInfoType *pPPS) {
    ppsEntryType	*atPPSlist;
    ULONG	ulBegin, ulOffset, ulTmp;
    size_t	tNbrOfPPS, tNameSize;
    int	iIndex, iStartBlock, iRootIndex;
    bool	bTypeFind = false;
    UCHAR	aucBytes[PROPERTY_SET_STORAGE_SIZE];

    (void)memset(pPPS, 0, sizeof(*pPPS));

    /* Read and store all the Property Set Storage entries */

    tNbrOfPPS = tRootListLen * BIG_BLOCK_SIZE / PROPERTY_SET_STORAGE_SIZE;
    atPPSlist = (ppsEntryType*)xcalloc(tNbrOfPPS, sizeof(ppsEntryType));
    iRootIndex = 0;

    for(iIndex = 0; iIndex < (int)tNbrOfPPS; iIndex++) {
        ulTmp = (ULONG)iIndex * PROPERTY_SET_STORAGE_SIZE;
        iStartBlock = (int)(ulTmp / BIG_BLOCK_SIZE);
        ulOffset = ulTmp % BIG_BLOCK_SIZE;
        ulBegin = (aulRootList[iStartBlock] + 1) * BIG_BLOCK_SIZE +
                  ulOffset;
        if(!bReadBytes(aucBytes, PROPERTY_SET_STORAGE_SIZE,
                       ulBegin, pFile)) {
            atPPSlist = (ppsEntryType*)xfree(atPPSlist);
            return false;
        }
        tNameSize = (size_t)usGetWord(0x40, aucBytes);
        tNameSize = (tNameSize + 1) / 2;
        vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize);
        atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes);
        if(atPPSlist[iIndex].ucType == 5) {
            iRootIndex = iIndex;
        }

        ULONG ulprev = ulGetLong(0x44, aucBytes);
        ULONG ulnxt = ulGetLong(0x48, aucBytes);
        ULONG uldir = ulGetLong(0x4c, aucBytes);
        ULONG ulsb = ulGetLong(0x74, aucBytes);   // 116
        ULONG ulsize = ulGetLong(0x78, aucBytes); // 120
        atPPSlist[iIndex].ulPrevious = ulprev;
        atPPSlist[iIndex].ulNext = ulnxt;
        atPPSlist[iIndex].ulDir = uldir;
        atPPSlist[iIndex].ulSB = ulsb;
        atPPSlist[iIndex].ulSize = ulsize;
        atPPSlist[iIndex].iLevel = INT_MAX;
        if((atPPSlist[iIndex].ulPrevious >= (ULONG)tNbrOfPPS &&
                atPPSlist[iIndex].ulPrevious != PPS_NUMBER_INVALID) ||
                (atPPSlist[iIndex].ulNext >= (ULONG)tNbrOfPPS &&
                 atPPSlist[iIndex].ulNext != PPS_NUMBER_INVALID) ||
                (atPPSlist[iIndex].ulDir >= (ULONG)tNbrOfPPS &&
                 atPPSlist[iIndex].ulDir != PPS_NUMBER_INVALID)) {
            atPPSlist = (ppsEntryType*)xfree(atPPSlist);
            return false;
        }
    }

    /* Add level information to each entry */
    vComputePPSlevels(atPPSlist, &atPPSlist[iRootIndex], 0, 0);

    for(iIndex = 0; iIndex < (int)tNbrOfPPS; iIndex++) {
        if(atPPSlist[iIndex].szName[0] == '\0' ||
                atPPSlist[iIndex].ulSize == 0) {
            /* This entry can be ignored */
            continue;
        }
        /*if (m_strFileName.endsWith(".wps") && pPPS->tWordDocument.ulSize == 0 &&
        	STREQ(atPPSlist[iIndex].szName, "Root Entry"))
        {
        	pPPS->tWordDocument.ulSB = 0;//atPPSlist[iIndex].ulSB;
        	pPPS->tWordDocument.ulSize = atPPSlist[iIndex].ulSize;
        	pPPS->type = Word;
        	bTypeFind = true;
        }
        else */if(pPPS->tWordDocument.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName, "WordDocument")) {
            pPPS->tWordDocument.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tWordDocument.ulSize = atPPSlist[iIndex].ulSize;
            pPPS->type = Word;
            bTypeFind = true;
        } else if(pPPS->tData.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName, "Data")) {
            pPPS->tData.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tData.ulSize = atPPSlist[iIndex].ulSize;
        } else if(pPPS->t0Table.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName, "0Table")) {
            pPPS->t0Table.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->t0Table.ulSize = atPPSlist[iIndex].ulSize;
        } else if(pPPS->t1Table.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName, "1Table")) {
            pPPS->t1Table.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->t1Table.ulSize = atPPSlist[iIndex].ulSize;
        } else if(pPPS->tSummaryInfo.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName,
                        "\005SummaryInformation")) {
            pPPS->tSummaryInfo.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tSummaryInfo.ulSize = atPPSlist[iIndex].ulSize;
        } else if(pPPS->tDocSummaryInfo.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName,
                        "\005DocumentSummaryInformation")) {
            pPPS->tDocSummaryInfo.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tDocSummaryInfo.ulSize = atPPSlist[iIndex].ulSize;
        } else if(pPPS->tWorkBook.ulSize == 0 &&
                  (STREQ(atPPSlist[iIndex].szName, "Book") || STREQ(atPPSlist[iIndex].szName, "Workbook"))) {
            pPPS->tWorkBook.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tWorkBook.ulSize = atPPSlist[iIndex].ulSize;
            pPPS->type = Excel;
            bTypeFind = true;
        } else if(pPPS->tPPTDocument.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName, "PowerPoint Document")) {
            pPPS->tPPTDocument.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tPPTDocument.ulSize = atPPSlist[iIndex].ulSize;
            pPPS->type = Ppt;
            bTypeFind = true;
        } else if(pPPS->tCurrentUser.ulSize == 0 &&
                  STREQ(atPPSlist[iIndex].szName, "Current User")) {
            pPPS->tCurrentUser.ulSB = atPPSlist[iIndex].ulSB;
            pPPS->tCurrentUser.ulSize = atPPSlist[iIndex].ulSize;
        }
    }

    /* Free the space for the Property Set Storage entries */
    atPPSlist = (ppsEntryType*)xfree(atPPSlist);

    return bTypeFind;
}/* end of bGetPPS */

int KBinaryParser::readData(rdPara &readParam, uchar *aucBuffer, ulong ulOffset, size_t tToRead) {
    /* Read the headerblock */
    if(!bReadBuffer(readParam.pFile, readParam.ulStBlk,
                    readParam.ulBBd, readParam.tBBdLen, readParam.usBlkSize,
                    aucBuffer, ulOffset, tToRead))
        return -1;
    return 0;
}


bool bCreateSmallBlockList(ULONG ulStartblock, const ULONG *aulBBD, size_t tBBDLen) {
    ULONG	ulTmp;
    size_t	tSize;
    int	iIndex;

    /* Find the length of the small block list */
    for(tSmallBlockListLen = 0, ulTmp = ulStartblock;
            tSmallBlockListLen < tBBDLen && ulTmp != END_OF_CHAIN;
            tSmallBlockListLen++, ulTmp = aulBBD[ulTmp]) {
        if(ulTmp >= (ULONG)tBBDLen) {
        }
    }

    if(tSmallBlockListLen == 0) {
        /* There is no small block list */
        aulSmallBlockList = NULL;
        return true;
    }

    /* Create the small block list */
    tSize = tSmallBlockListLen * sizeof(ULONG);
    aulSmallBlockList = (ULONG*)xmalloc(tSize);
    for(iIndex = 0, ulTmp = ulStartblock;
            iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
            iIndex++, ulTmp = aulBBD[ulTmp]) {
        if(ulTmp >= (ULONG)tBBDLen) {
            return false;
        }
        aulSmallBlockList[iIndex] = ulTmp;
    }
    return true;
} /* end of bCreateSmallBlockList */


static void vGetBbdList(FILE *pFile, int iNbr, ULONG *aulBbdList, ULONG ulOffset) {
    int	iIndex;

    for(iIndex = 0; iIndex < iNbr; iIndex++) {
        aulBbdList[iIndex] = ulReadLong(pFile, ulOffset + 4 * (ULONG)iIndex);
    }
} /* end of vGetBbdList */


static bool bGetBBD(FILE *pFile, const ULONG *aulDepot, size_t tDepotLen,
                    ULONG *aulBBD, size_t tBBDLen) {
    ULONG	ulBegin;
    size_t	tToGo, tDone;
    int	iIndex;

    tToGo = tBBDLen;
    for(iIndex = 0; iIndex < (int)tDepotLen && tToGo != 0; iIndex++) {
        ulBegin = (aulDepot[iIndex] + 1) * BIG_BLOCK_SIZE;
        tDone = tReadBlockIndices(pFile, aulBBD, tToGo, ulBegin);
        if(tDone == 0) {
            return false;
        }
        aulBBD += tDone;
        tToGo -= tDone;
    }
    return tToGo == 0;
} /* end of bGetBBD */

#define REHASH(a) \
	if (sl_minus_1 < (int)sizeof(int) * CHAR_BIT)       \
		hashHaystack -= (a) << sl_minus_1; \
	hashHaystack <<= 1

static inline uint foldCase(const ushort *ch, const ushort *start) {
    uint c = *ch;
    if(QChar(c).isLowSurrogate() && ch > start && QChar(*(ch - 1)).isHighSurrogate())
        c = QChar::surrogateToUcs4(*(ch - 1), c);
    return *ch + qGetProp(c)->caseFoldDiff;
}

static inline uint foldCase(uint ch, uint &last) {
    uint c = ch;
    if(QChar(c).isLowSurrogate() && QChar(last).isHighSurrogate())
        c = QChar::surrogateToUcs4(last, c);
    last = ch;
    return ch + qGetProp(c)->caseFoldDiff;
}

static inline ushort foldCase(ushort ch) {
    return ch + qGetProp(ch)->caseFoldDiff;
}


static int ucstricmp(const ushort *a, const ushort *ae, const ushort *b, const ushort *be) {
    if(a == b)
        return (ae - be);
    if(a == 0)
        return 1;
    if(b == 0)
        return -1;

    const ushort *e = ae;
    if(be - b < ae - a)
        e = a + (be - b);

    uint alast = 0;
    uint blast = 0;
    while(a < e) {
        qDebug() << hex << alast << blast;
        qDebug() << hex << "*a=" << *a << "alast=" << alast << "folded=" << foldCase(*a, alast);
        qDebug() << hex << "*b=" << *b << "blast=" << blast << "folded=" << foldCase(*b, blast);
        int diff = foldCase(*a, alast) - foldCase(*b, blast);
        if((diff))
            return diff;
        ++a;
        ++b;
    }
    if(a == ae) {
        if(b == be)
            return 0;
        return -1;
    }
    return 1;
}

static int ucstrnicmp(const ushort *a, const ushort *b, int l) {
    return ucstricmp(a, a + l, b, b + l);
}

static int ucstrncmp(const QChar *a, const QChar *b, int l) {
    while(l-- && *a == *b)
        a++, b++;
    if(l == -1)
        return 0;
    return a->unicode() - b->unicode();
}

inline uint _Ucs2ToUcs4(ushort lead, ushort trail) {
    unsigned int ucs4 = (trail - 0xDC00); //low 10 bit
    ucs4 |= ((lead - 0xD800)) << 10; //high 10 bit
    return ucs4 + 0x10000;
}

bool KBinaryParser::read8DocText(FILE *pFile, const ppsInfoType *pPPS,
                                 const ULONG *aulBBD, size_t tBBDLen,
                                 const ULONG *aulSBD, size_t tSBDLen,
                                 const UCHAR *aucHeader, QString &content) {
    const ULONG	*aulBlockDepot;
    ULONG	ulTextOffset, ulBeginTextInfo;
    ULONG	ulTotLength, ulLen;
    ULONG   ulEncryptInfo;
    long	lIndex, lPieces, lOff;
    size_t	tTextInfoLen, tBlockDepotLen, tBlockSize;
    int	iType, iLen;
    bool	bUsesUnicode;
    USHORT	usPropMod;

    ulBeginTextInfo = ulGetLong(0x1a2, aucHeader);	/* fcClx */
    tTextInfoLen = (size_t)ulGetLong(0x1a6, aucHeader);	/* lcbClx */
    ulEncryptInfo = ulGetLong(0x0a, aucHeader);
    if(ulEncryptInfo & BIT(8)) {
        qDebug() << "Encrypt file:" << m_strFileName << (size_t)ulEncryptInfo;
        return false;
    }

    if(pPPS->tTable.ulSize == 0)
        return false;

    if(pPPS->tTable.ulSize < MIN_SIZE_FOR_BBD_USE) {
        /* Use the Small Block Depot */
        aulBlockDepot = aulSBD;
        tBlockDepotLen = tSBDLen;
        tBlockSize = SMALL_BLOCK_SIZE;
    } else {
        /* Use the Big Block Depot */
        aulBlockDepot = aulBBD;
        tBlockDepotLen = tBBDLen;
        tBlockSize = BIG_BLOCK_SIZE;
    }

    UCHAR aucBuffer[tTextInfoLen];
    if(!bReadBuffer(pFile, pPPS->tTable.ulSB,
                    aulBlockDepot, tBlockDepotLen, tBlockSize,
                    aucBuffer, ulBeginTextInfo, tTextInfoLen))
        return false;

    lOff = 0;
    while(lOff < (long)tTextInfoLen) {
        iType = (int)ucGetByte(lOff, aucBuffer);
        lOff++;
        if(iType == 0) {
            lOff++;
            continue;
        }
        if(iType == 1) {
            iLen = (int)usGetWord(lOff, aucBuffer);
            vAdd2PropModList(aucBuffer + lOff);
            lOff += (long)iLen + 2;
            continue;
        }

        if(iType != 2)
            return false;

        /* Type 2 */
        ulLen = ulGetLong(lOff, aucBuffer);
        if(ulLen < 4)
            return false;

        lOff += 4;
        lPieces = (long)((ulLen - 4) / 12);
        for(lIndex = 0; lIndex < lPieces; lIndex++) {
            ulTextOffset = ulGetLong(lOff + (lPieces + 1) * 4 + lIndex * 8 + 2, aucBuffer);
            usPropMod = usGetWord(lOff + (lPieces + 1) * 4 + lIndex * 8 + 6, aucBuffer);
            ulTotLength = ulGetLong(lOff + (lIndex + 1) * 4, aucBuffer) - ulGetLong(lOff + lIndex * 4, aucBuffer);
            if((ulTextOffset & BIT(30)) == 0) {
                bUsesUnicode = true;
                ulTotLength *= 2;
            } else {
                bUsesUnicode = false;
                ulTextOffset &= ~BIT(30);
                ulTextOffset /= 2;
            }

            ulong uOff = 0;
            UCHAR* ptaucBytes;
            ULONG ulFileOffset = (pPPS->tWordDocument.ulSB + 1) * BIG_BLOCK_SIZE + ulTextOffset;
            if(pPPS->tWordDocument.ulSize < MIN_SIZE_FOR_BBD_USE)
                ulFileOffset = ulDepotOffset(pPPS->tWordDocument.ulSB, SMALL_BLOCK_SIZE) + ulTextOffset;
            while(uOff < ulTotLength) {
//                ULONG iAllocSize = MAX_BUFF_SIZE;
//                if((ulTotLength - uOff) < MAX_BUFF_SIZE)
//                    iAllocSize = ulTotLength - uOff;

                ULONG iAllocSize = (ulTotLength - uOff) < MAX_BUFF_SIZE ? (ulTotLength - uOff) : MAX_BUFF_SIZE;

                ptaucBytes = (UCHAR*)xmalloc(iAllocSize);
                if(!ptaucBytes)
                    return false;
                if(!bReadBytes(ptaucBytes, iAllocSize, ulFileOffset, pFile))
                    return -1;

                ulFileOffset += iAllocSize;
                uOff += iAllocSize;

                if(bUsesUnicode) {
                    ushort* usAucData = (ushort*)ptaucBytes;
                    content.append(QString::fromUtf16(usAucData, iAllocSize/2).replace("\n", "").replace("\r", " "));//char num/2=short num
                    usAucData = (ushort*)xfree((void*)usAucData);
                    ptaucBytes = NULL;
                    if(content.length() >= 682666) //20480000/3
                        break;
                } else {
                    //need more format document
                    ptaucBytes = (UCHAR*)xfree((void*)ptaucBytes);
                    qWarning() << "Parser error:" << m_strFileName;
//                    content.append(QString::fromStdString((char*)ptaucBytes).replace("\r",""));
//                    ptaucBytes = (UCHAR*)xfree((void*)ptaucBytes);
                }
            }
        }
        break;
    }

    return false;
}/* end of bGet8DocumentText */

int KBinaryParser:: readSSTRecord(readDataParam &rdParam, ppsInfoType PPS_info, ulong &ulOff, ushort usPartLen, QString &content) {
    UCHAR chSizeData[8];
    if(readData(rdParam, chSizeData, ulOff, 8) != 0)
        return -1;

    ulOff += 8;
    usPartLen -= 8;
    ulong ulSize = ulGetLong(0x04, chSizeData) + 1;
    ulong ulCount = 1;
    ulong ulNextOff = 0;
    while((ulCount < ulSize) && (ulOff < PPS_info.tWorkBook.ulSize)) {
        UCHAR chHeader[3];
        if(readData(rdParam, chHeader, ulOff + ulNextOff, 3) != 0)
            break;

        ushort uscharlen = usGetWord(0x00, chHeader);
        ushort usCharByteLen = uscharlen;
        UCHAR ucFlag = ucGetByte(0x02, chHeader);
        ulNextOff += 3;
        excelRecord eRrd;
        if(read8BiffRecord(ucFlag, ulOff, ulNextOff, rdParam, eRrd) != 0)
            break;

        ushort ustotalLen = uscharlen + eRrd.usRichLen * 4 + eRrd.ulWLen;
        if(!eRrd.bUni)
            ustotalLen += uscharlen;
        UCHAR* chData = (UCHAR*)xmalloc(ustotalLen);
        ushort ustotalLenTmp = ustotalLen;
        if(ulNextOff < usPartLen && (ulNextOff + ustotalLen) >= usPartLen) {
            ushort usIdf = usPartLen - ulNextOff;
            uchar chTemp[MAX_BUFF_SIZE];
            memset(chTemp, 0, MAX_BUFF_SIZE);
            if(readData(rdParam, chTemp, ulOff + ulNextOff, usIdf + 5) != 0)
                break;

            bool bTemp = false;
            ulOff += usPartLen;
            ulOff += 4;
            memcpy(&usPartLen, chTemp + usIdf + 2, 2);
            ushort usOthTxtLen = ustotalLen - usIdf;
            bool bAnotherCompare = (usOthTxtLen == 0 || (usCharByteLen - usIdf) == 0) || usCharByteLen < usIdf;
            ulong ulNoUse = 0;
            bool bUniFlg = false;
            if(!bAnotherCompare) {
                uchar chFlag;

                memcpy(&chFlag, chTemp + usIdf + 4, 1);
                if(chFlag == 0x00 || chFlag == 0x01 || chFlag == 0x05 || chFlag == 0x09 || chFlag == 0x08 || chFlag == 0x04 || chFlag == 0x0c) {
                    bTemp = true;
                    ulOff ++;

                    ulong ulNextTep = 0;
                    excelRecord eRTmp;
                    if(read8BiffRecord(chFlag, ulOff, ulNextTep, rdParam, eRTmp) != 0)
                        break;
                    ulOff += ulNextTep;
                    bUniFlg = eRTmp.bUni;
                    ulNoUse = eRTmp.usRichLen * 4 + eRTmp.ulWLen;
                }
            }
            memcpy(chData, chTemp, usIdf);
            ulNextOff = 0;
            ustotalLen = usOthTxtLen + ulNoUse;

            if(usOthTxtLen > 0) {
                memset(chTemp, 0, MAX_BUFF_SIZE);
                if(readData(rdParam, chTemp, ulOff, usOthTxtLen) != 0)
                    return -1;
                memcpy(chData + usIdf, chTemp, usOthTxtLen);
            }
            if(bTemp)
                usPartLen --;
        } else {
            if(readData(rdParam, chData, ulOff + ulNextOff, ustotalLen) != 0)
                break;
        }

        if(eRrd.bUni) {
            qDebug() << QString((const char*)chData);
            chData = (UCHAR*)xfree((void*)chData);
            qWarning() << "Unsupport excel type:" << m_strFileName;
        } else {
            ushort* usData = (ushort*)chData;
            content.append(QString::fromUtf16(usData, ustotalLenTmp/2).replace("\n", "").replace("\r", " ")).append(" ");//每个单元格数据之间使用空格，//char num/2=short num
            usData = (ushort*)xfree((void*)usData);
            chData = NULL;
            if(content.length() >= 682666) //20480000/3
                break;
        }
        ulNextOff += ustotalLen;
        ulCount += 1;
    }

    if(ulCount >= ulSize)
        return -1;
    return 0;
}

int KBinaryParser::read8BiffRecord(uchar ucFlag, ulong ulOff, ulong &ulNext, readDataParam &rdParam, excelRecord &eR) {
    bool butf8 = true;
    if(ucFlag & 0x08) {
        uchar chiRich[2];
        if(readData(rdParam, chiRich, ulOff + ulNext, 2) != 0)
            return -1;
        eR.usRichLen = usGetWord(0x00, chiRich);
        ulNext += 2;
    }
    if(ucFlag & 0x04) {
        uchar chExt[4];
        if(readData(rdParam, chExt, ulOff + ulNext, 4) != 0)
            return -1;
        eR.ulWLen = ulGetLong(0x00, chExt);
        ulNext += 4;
    }
    if((ucFlag & 0x01)) {
        butf8 = false;
    }
    eR.bUni = butf8;
    return 0;
}

ULONG KBinaryParser::readPPtRecord(FILE* pFile, ppsInfoType* PPS_info, ULONG* aulBBD, size_t tBBDLen, ULONG ulPos, QString &content) {
    UCHAR	aucHeader[PPT_RECORD_HEADER];
    ULONG	ulOff = ulPos;
    /* Read the headerblock */
    if(!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB,
                    aulBBD, tBBDLen, BIG_BLOCK_SIZE,
                    aucHeader, ulOff, PPT_RECORD_HEADER))
        return -1;

    ulOff += PPT_RECORD_HEADER;
    USHORT usVersion = usGetWord(0x00, aucHeader);
    USHORT usType = usGetWord(0x02, aucHeader);
    ULONG ulLen = ulGetLong(0x04, aucHeader);
    USHORT usVer = usVersion & 0xF;
    if(usVer == 0xF) {
        while(ulOff < ulLen) {
            ulOff = readPPtRecord(pFile, PPS_info, aulBBD, tBBDLen, ulOff, content);
        }
    } else {
        if(usType == PPT_TEXTBYTEATOM || usType == PPT_TEXTCHARATOM) {
            long llen = (long)ulLen;
            long llenTmp = llen;
            UCHAR* chData = (UCHAR*)xmalloc(llen);
            if(!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB,
                            aulBBD, tBBDLen, BIG_BLOCK_SIZE,
                            chData, ulOff, llen))
                return -1;
            ushort* usData = (ushort*)chData;

            content.append(QString::fromUtf16(usData, llenTmp/2).replace("\n", "").replace("\r", " "));//char num/2=short num

            usData = (ushort*)xfree((void*)usData);
            chData = NULL;
        }
        ulOff += ulLen;
        if(content.length() >= 682666) //20480000/3
            return ulOff;
    }
    return ulOff;
}

int KBinaryParser::InitDocOle(FILE* pFile, long lFilesize, QString &content) {
    ppsInfoType	PPS_info;
    ULONG	*aulBBD, *aulSBD;
    ULONG	*aulRootList, *aulBbdList, *aulSbdList;
    ULONG	ulBdbListStart, ulAdditionalBBDlist;
    ULONG	ulRootStartblock, ulSbdStartblock, ulSBLstartblock;
    ULONG	ulStart, ulTmp;
    long	lMaxBlock;
    size_t	tBBDLen, tSBDLen, tNumBbdBlocks, tRootListLen;
    int	 iIndex, iToGo;
    bool	bSuccess;
    USHORT	usIdent, usDocStatus;

    lMaxBlock = lFilesize / BIG_BLOCK_SIZE - 2;
    if(lMaxBlock < 1)
        return -1;

    tBBDLen = (size_t)(lMaxBlock + 1);
    tNumBbdBlocks = (size_t)ulReadLong(pFile, 0x2c);
    ulRootStartblock = ulReadLong(pFile, 0x30);
    ulSbdStartblock = ulReadLong(pFile, 0x3c);
    ulAdditionalBBDlist = ulReadLong(pFile, 0x44);
    ulSBLstartblock = ulReadLong(pFile,
                                 (ulRootStartblock + 1) * BIG_BLOCK_SIZE + 0x74);
    tSBDLen = (size_t)(ulReadLong(pFile,
                                  (ulRootStartblock + 1) * BIG_BLOCK_SIZE + 0x78) /
                       SMALL_BLOCK_SIZE);

    /* All to be xcalloc-ed pointers to NULL */
    aulRootList = NULL;
    aulSbdList = NULL;
    aulBbdList = NULL;
    aulSBD = NULL;
    aulBBD = NULL;

    aulBbdList = (ULONG*)xcalloc(tNumBbdBlocks, sizeof(ULONG));
    aulBBD = (ULONG*)xcalloc(tBBDLen, sizeof(ULONG));
    iToGo = (int)tNumBbdBlocks;
    vGetBbdList(pFile, min(iToGo, 109),  aulBbdList, 0x4c);
    ulStart = 109;
    iToGo -= 109;
    while(ulAdditionalBBDlist != END_OF_CHAIN && iToGo > 0) {
        ulBdbListStart = (ulAdditionalBBDlist + 1) * BIG_BLOCK_SIZE;
        vGetBbdList(pFile, min(iToGo, 127),
                    aulBbdList + ulStart, ulBdbListStart);
        ulAdditionalBBDlist = ulReadLong(pFile,
                                         ulBdbListStart + 4 * 127);
        ulStart += 127;
        iToGo -= 127;
    }

    if(!bGetBBD(pFile, aulBbdList, tNumBbdBlocks, aulBBD, tBBDLen))
        return -1;

    aulBbdList = (ULONG*)xfree(aulBbdList);
    /* Small Block Depot */
    aulSbdList = (unsigned long*)xcalloc(tBBDLen, sizeof(ULONG));
    aulSBD = (unsigned long*)xcalloc(tSBDLen, sizeof(ULONG));

    for(iIndex = 0, ulTmp = ulSbdStartblock;
            iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
            iIndex++, ulTmp = aulBBD[ulTmp]) {
        if(ulTmp >= (ULONG)tBBDLen) {
            qWarning("The Big Block Depot is damaged");
            return -1;
        }

        aulSbdList[iIndex] = ulTmp;
    }

    if(!bGetSBD(pFile, aulSbdList, tBBDLen, aulSBD, tSBDLen))
        return -1;


    aulSbdList = (ULONG*)xfree(aulSbdList);
    /* Root list */
    for(tRootListLen = 0, ulTmp = ulRootStartblock;
            tRootListLen < tBBDLen && ulTmp != END_OF_CHAIN;
            tRootListLen++, ulTmp = aulBBD[ulTmp]) {
        if(ulTmp >= (ULONG)tBBDLen)
            return -1;

    }
    if(tRootListLen == 0)
        return -1;

    aulRootList = (ULONG*)xcalloc(tRootListLen, sizeof(ULONG));
    for(iIndex = 0, ulTmp = ulRootStartblock;
            iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
            iIndex++, ulTmp = aulBBD[ulTmp]) {
        if(ulTmp >= (ULONG)tBBDLen)
            return -1;

        aulRootList[iIndex] = ulTmp;
    }
    bSuccess = bGetPPS(pFile, aulRootList, tRootListLen, &PPS_info);
    aulRootList = (ULONG*)xfree(aulRootList);
    if(!bSuccess)
        return -1;

    rdPara readParam;
    readParam.pFile = pFile;
    readParam.tBBdLen = tBBDLen;
    readParam.ulBBd = aulBBD;
    readParam.usBlkSize = BIG_BLOCK_SIZE;
    if(PPS_info.type == Word) {
        readParam.ulStBlk = PPS_info.tWordDocument.ulSB;
        UCHAR	aucHeader[HEADER_SIZE];
        /* Small block list */
        if(!bCreateSmallBlockList(ulSBLstartblock, aulBBD, tBBDLen))
            return -1;

        if(PPS_info.tWordDocument.ulSize < MIN_SIZE_FOR_BBD_USE) {
            readParam.ulBBd = aulSBD;
            readParam.tBBdLen = tSBDLen;
            readParam.usBlkSize = SMALL_BLOCK_SIZE;
        }

        if(readData(readParam, aucHeader, 0, HEADER_SIZE) != 0)
            return -1;

        usIdent = usGetWord(0x00, aucHeader);

        if(usIdent != 0x8098 &&	/* Word 7 for oriental languages */
                usIdent != 0x8099 &&	/* Word 7 for oriental languages */
                usIdent != 0xa5dc &&	/* Word 6 & 7 */
                usIdent != 0xa5ec &&	/* Word 7 & 97 & 98 */
                usIdent != 0xa697 &&	/* Word 7 for oriental languages */
                usIdent != 0xa699)	/* Word 7 for oriental languages */
            return -1;

        /* Get the status flags from the header */
        usDocStatus = usGetWord(0x0a, aucHeader);
        if(usDocStatus & BIT(9))
            PPS_info.tTable = PPS_info.t1Table;
        else
            PPS_info.tTable = PPS_info.t0Table;

        read8DocText(pFile,
                     &PPS_info,
                     aulBBD, tBBDLen, aulSBD, tSBDLen,
                     aucHeader, content);
    } else if(PPS_info.type == Excel) {
        readParam.ulStBlk = PPS_info.tWorkBook.ulSB;
        UCHAR aucHeader[4];
        ulong ulOff = 0;
        if(readData(readParam, aucHeader, 0, 8) != 0)
            return -1;
        ulOff += 4;
        USHORT usType = usGetWord(0x00, aucHeader);

        while(ulOff < PPS_info.tWorkBook.ulSize) {
            USHORT usLen = usGetWord(0x02, aucHeader);
            ulOff += usLen;
            if(readData(readParam, aucHeader, ulOff, 4) != 0)
                break;
            ulOff += 4;
            usType = usGetWord(0x00, aucHeader);
            ushort usPartLen = usGetWord(0x02, aucHeader);
            if(usType == 0x00FC) {
                if(readSSTRecord(readParam, PPS_info, ulOff, usPartLen, content) != 0)
                    break;
            }
        }
    } else if(PPS_info.type == Ppt) {
        ULONG ulOff = 0;
        while(ulOff < PPS_info.tPPTDocument.ulSize) {
            ulOff = readPPtRecord(pFile, &PPS_info, aulBBD, tBBDLen, ulOff, content);
        }
    } else {
        qWarning() << "Unsupport doc type:" << m_strFileName;
    }
    return 0;
}

long lGetFilesize(const char *szFilename) {
    struct stat	tBuffer;
    if(stat(szFilename, &tBuffer) != 0) {
        //qWarning() << "Get Filesize error";
        return -1;
    }
    if(!S_ISREG(tBuffer.st_mode)) {
        //qWarning() << "It's not a regular file";
        return -1;
    }
    return (long)tBuffer.st_size;
}

KBinaryParser::KBinaryParser(QObject *parent)
    : QObject(parent)
    , m_strFileName("") {
}

KBinaryParser::~KBinaryParser()
{}

bool KBinaryParser::RunParser(QString strFile, QString &content) {
    FILE* pFile = fopen(strFile.toLocal8Bit().data(), "rb");
    if(!pFile) {
        return false;
    }
    m_strFileName = strFile;
    long lFileSize = lGetFilesize(strFile.toLocal8Bit().data());
    if(lFileSize < 0) {
        qWarning() << "ERROR SIZE";
        (void)fclose(pFile);
        return false;
    }
    // If InitDocOle failed, -1 will be returned.
    if(InitDocOle(pFile, lFileSize, content)) {
        qWarning() << "InitDocOle failed!" << strFile;
    }
    fclose(pFile);
    return true;
}

